Sounds like you're on the right track ... hopefully just a few steps away!
If you run your code on the original map (before greduce), do the charttips work any better?
Are you using dev=activex, dev=java, or dev=png (or gif)? I recommend trying it with dev=png (or gif) ... activex and java can have some special 'quirks' (or extra features) when it comes to custom charttips & drilldowns.
Are you 100% certain that your response data has good/valid values for all the map areas? None of the strings are getting truncated short (before the closing quote within the string)?
Also, in v9.3, "proc mapimport" doesn't allow you to specify an 'id' variable, therefore it has to 'guess/intuit' what the id variable (and segment variable) are in the map. In v9.2, mapimport was enhanced to let you specify exactly which variable is the unique id, and it also has some other improvements. If possible, try upgrading to v9.2 and try the import again (or maybe ask a friend who already has 9.2 to import the map for you, and then you can use that imported map in your v9.1.3 SAS session).