Is there a way of using GuiXT global variables across multiple sessions. For example, if I'm in transaction X and I start a new session for a transaction Y with /OY, can I use the variables I set whilst in transaction X? 

These are distinct sets of variables, one for each session. But you can pass using-parameters to InputScript started with a /O...-command. If this is not enough, you could write a file and read it in the next mode.