Well, you're still expecting it to happen automatically. The text will only change when you call SetText. The button isn't aware of that a variable was used to set its text. The following are exactly identical:
local a = 1
You're just assigning a new value to the variables, but that changes nothing. You need to SetText when you want the text to update.
It says that event was removed two years ago, so probably not. :P The character stats frame seems to use these events (among others):
"UNIT_STATS" (arg1 == "player")