Enable/Disable macro is a very heavy handed action. It cause the macros to be changed, and reloaded in both the editor and the engine.
You generally do not want to use that for transient macros, you want to use activate/decativate Macro Group for things that are transient if at all possible.
Because the macros are reloaded by the engine, a lot of macro state is lost, and hot keys are unregistered and re-registered and such. I expect that is why you are running in to this sort of issue.