Curiously, if this is a creature script, it runs every time a saved game is loaded. In other words, write something with a non-permanent function like a token that would be emptied on reload, and OnCreation() will charge up the function automatically and so, in effect, make it permanent. This is true for override-level scripts, in any event. If you know, then I did not - I thought it was truly one-time.
But since, with tokens, you would first have to set the value of tokens themselves before putting that in any strings - and who would do it? would you alter the override script of the party? and other creatures can't be guaranteed to follow the party around - you can go to baldur.bcs for it:
On reload, this will change the main default tag to another string, if you want someone else to be the hero of the story. SetName() by itself does not change the value of < CHARNAME> . Or you could fill a custom tag this way, and then creatures whose scripts refer to that token will take that input, because their own scripts load after baldur.bcs.