You know what? I bet I know what's going on.
when you (send gPrintDlg:dispose) without a dialog box the game crashes. So when the player Saves the game, the (send gPrintDlg:dispose) is called and the dialog box it removed.
Then, moments later when my changeState method is rolling on to the next Case, the game is calling (send gPrintDlg:dispose) with no box. I bet if I add the same if clause as is found in the Save method, this will fix the problem.
EDIT: My hypothesis was correct. I was calling (send gPrintDlg:dispose) after the save method already did thus crashing the game. Adding (if(gPrintDlg) as the condition for (send gPrintDlg:dispose) fixes it up nicely. Thanks for the help!