The letter writing prompt's bottom line's name is not coded to mirror your mayor. It's its own string. You can literally write anything you want down there and update the string yourself. The default "from {mayor}" string is simply generated once when the character is first created. Anything you put as the bottom string will remain that string consistently until the next time you write another letter and decide to change it.
So if you used to be "Bob" and now you're "Susan" and your letter says "from Mayor Bob", you can move the cursor down there and edit it to "from Mayor Susan" or even to "by order of King Dickbutt" and the game will keep those changes. Just to be clear, you make these changes in game, not in the editor.
This is why the old letters don't change the referenced name. Because it records the whole string as character-inputted text, including whatever name was written down there, just as it does the body of the letter. The name is not coded to reference a value that's meant to match your player's name.
Oh..ok! Thanks for the info! I'll have to try it out!