Interesting that if you open the form and the timer event is firing and you can get the message if there's no keyboard or mouse movement. However, if there is a mousemove event involved (it seems that there is)
If I move the mouse over various items on the form,
then perhaps during normal use the issue is that the mousemove event continually fires if the mouse is moving. Consider that the mousemove event might queue up 1000 times in one mouse move and 10,000 times in another so I expect they'll all execute before passing control back so that the timer event can run. I realize that doesn't explain the experience when your hands are off of the mouse and keyboard; I'm suggesting that even if you figure that out, the approach may never work using mousemove.
I have to wonder why the timer event is even being used in hiding/unhiding controls.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.