Technical difference between maxscripts with and without macro header

Hi! I have a problem I'm more and more experiencing. I have some scripts (for example the speedtree fbx importer) which I can throw in 3ds Max and they work. If I make them a macro, they work in the beginning, but after some time the macro buttons don't do nothing anymore. How can this happen? I mean the macro should only be a button to execute the script and nothing more? I also have a filesaver script which is always working when I throw it in 3ds Max. When I make it a macro it works in the beginning. After some time (for example it crashes one time) the macro doesn't work anymore and I have to delete the button and install it again. What's the technical reason for this and is there a way to get away from it?

Thank you very much!