I'll look into why the variables don't show up when added by script at runtime. It could be a caching issue... did you try restarting the Playmaker editor to see if they show up while running?
However, without doing something extra, variables added at runtime will be lost when you stop the game. You're changing a runtime copy of the PlayMakerFSM component that is destroyed when you stop playing. There are third party utilities to save changes made at runtime, Playmode Persist comes to mind, but I can't remember if they work with Playmaker or not...
Prefabs and templates are an exception to this rule, since they are persistent project assets (not scene objects). Changes made to them at runtime ARE persistent.
The event list is kind of unique since it doesn't exist as an asset or a MonoBehaviour. It is constructed on the fly when FSMs register their events. You see the added event survive playmode change because the list isn't cleared when you stop the game. But the event hasn't really been added to the FSM... if that makes sense!
EDIT: I would recommend adding the variables at edit time, maybe with a small editor tool.