My guess is that this is a file corruption issue--one (or more) of your files is corrupted; when you remove the last instance of it from memory SW tries to close it out and bang-- CTD... It has to do with the way SW allocates memory for the particular offending feature.
The problem is likely to be in one of the parts, rather than the assembly. To find the source of the problem, open and then close parts (one at a time, with no assemblies open)--when you get to the right one, you'll CTD. You can expedite this process somewhat by opening and then closing progressively smaller sub-assemblies. If the offending part is in the sub, it will CTD too. Just remember that the trick is to only have one file open at a time.
When this happened to me, the problem was with the definition of a sketch in one of my parts--took me almost 3 months to track down which one. Once I found it, deleting the offending feature and redoing the sketch solved the problem.
FYI--it's a file corruption issue; it doesn't have anything to do with 2001 / 2003 per se--you just happened to corrupt one while converting. At the time it happened to me, SW theorized that the offending bit of data had been written to a bad byte on the hard drive. The big problem comes in that SW doesn't recognize that the file is corrupted--in my case there were no obvious issues with the part--no cherries, no messages, just CTD on close....
Good luck with your snipe hunt....