While developing XUFishv4 I thought about this and placed everything into objects, even the scripts in the initializer vbs files. I've noticed that as I set everything to nothing it works a helluva lot better.
I still find it highly annoying to debug though, the best way I've found so far is set on error resume next and sprinkly my code with message boxes to see where it goes wrong.
Debugging would be a different world if there was some way to find the file and line number of where something goes wrong, as it is now it's just a pain in the !@#$%^&* and when you get a bug you just can't find you're quite likelly to just give it up for a few weeks.
Calling deactivate on windows before freeing them helps too.

Granted, the game still "chops" every second after you've been running scripts 20 times or so, makes me kinda wish there was some way to launch scripts via ctrl+ins+number so I wouldn't have to display the run script dialog.