Sorry, but the Timer_CjeckGlobal exists on the window as a dropped instance from the Library or as a Property? If the later, you should instantiate it first using: Timer_CheckGlobal = new Timer
If you have the Timer as an implicit instance (object dropped from the Library) to the Tray, then I think it should work.
As it turns out, the window was closing and the method was running after the window CancelClose event. Since the window was cancelled, nothing needed to be done or saved so the Method could just be skipped.
I created a property on the invoice window called WindowClosing and in the CancelClose event added WindowClosing = True, and then just added at the beginning of the method:
If WindowClosing then //Invoice was not modified
Return
End If