The Mystery Gift script should return the information it gathered, rather than try to record it somewhere. That information can then hang around in the def pbStartLoadScreen until it has loaded the save/started a new game, and then you can add the Mystery Gift information to the appropriate variables.
It's hard to explain in an abstract manner (i.e. when you don't have the code itself to point at).
Alternatively, don't have the Mystery Gift there. Put it in the main game instead. It would be easier.