Well probably you change the state in every OnTimer. That is you set it to the opposite, and then back to what it was.
Off course there is a small chance, that there is an lcl bug, where setting a disabled menu to disabled, will force a redraw....
But why a timer at all?
For copy/paste synedit supports TAction.
But also SynEdit has events, that you can use, and in which you can make the change.
Or if you do not want to make it while the user types, then in the event fire a timer (and reset / re-fire in each further event).
SynEdit.OnStatusChange can tell you when selection is made/lost
SynEdit.OnChange and the ChangeStamp or Modified flag are good for enabling Save.
----------
All else: Show the code in the timer. And mention OS.