Yeah, it doesn't work like that.
You need to insert player's name into the text using events.
Change you text in the XML to something like this:
"Hello %player%, you have %gold% coins."
Before displaying the text on the screen you need to search for %player% and %gold% tags and replace them:
message= Replace(message, "%player%", Player.Name)
message= Replace(message, "%gold%", str(Player.GoldAmount))