at start of layout you are changing the value of the global variable, but since there are probably multiple buttons, it is getting a value other than what you are looking for.
if you move that action to event 2, it should work. (set the global variable button to button.action in the "On Left button Clicked" event, then the sub event will work - when you click on the button that has "action" set to selectCharacter)
another way to do it without a global variable would be to store the layout to go to in the "action" instance variable, (set button.action to "pjCreation")
then in event 2 add an action that says: system > Go to button.action
(then you dont need the sub event, or other sub events for other layouts).