Hmm, that sounds like a hard problem to work through and I'm not too sure how much help I'll be; however here are a couple of thoughts I came up with while reading through your post.
The problem is, that when I save any file with the map in it, the VBA no longer works
The magic words "no longer works", leads me to believe that it works before the save; which leads me to believe that it is not an issue with the DLL since it does work at some point. Maybe when you save the file the "map" is/has an object that references something that is in the GeoDesiX addin, and that reference is somehow lost/broken when you save the file. (Maybe look at coding the map to be automatically rebuilt in the Workbook_Open event)
The other though is you may want to change the line of code that reads
to be
and then you should be able to see if the function call is being preformed correctly.
As a side note:
is an awesome one-liner that I'm going to have to add to my personal canon.
Bookmarks