You're suffering the well-known DLL hell problem. When the CCW (COM Callable Wrapper) is created (when you add a reference to the COM DLL, that's what's happening), the .NET assembly that makes it up uses the COM GUID to locate the corresponding component. If you register a new version, there will be a conflict, and the CCW will no longer be able to query inside the new COM dll, because of Vtable address mismatches and all sort of incompatibilty issues that made this problem so unfortunately usual in the "old" COM days. Unless you compile the DLL with binary compatibility enabled, and use exactly the same GUID each time (and pray for it to work in the meantime), this is unavoidable.
This was first published in July 2003