If the problem is caused by going from a newer version of Excel to an older version, the solution might be to do the development on the oldest version.
I believe if you write your code in the oldest version 2002 and open it in 2003 it will update the references for you.
However,you could use late-binding. Instead of relying on a specific version, you create a "version-independent" object that doesn't use references.
It's very nice to use early binding when developing. You get all the intellisense help (when you set the reference and declare the variables nicely). But before you distribute it to users (who may be using different versions), it's usually a good idea to use latebinding (and change those object variable declarations to the generic "As Object".)
Here are some more extensive references on binding:
Use late binding - don't have a reference to excel.
http://support.microsoft.com/default.aspx?scid=kb;EN-US;244167
INFO: Writing Automation Clients for Multiple Office Versions
http://support.microsoft.com/default.aspx?scid=kb;en-us;245115
INFO: Using Early Binding and Late Binding in Automation
http://support.microsoft.com/default.aspx?scid=kb;en-us;247579
INFO: Use DISPID Binding to Automate Office Applications Whenever Possible