Maybe some general information about CLSIDs will help...
A CLSID is an ID that uniquely identifies a plugin. It is generated
by the developer at compile time, and has nothing to do with where you've installed the DLL. Absolute pathnames only come into play when the Cakewalk Plugin Manager scans DLLs and writes an entry into the registry that correlates the CLSID with an actual file location. This is the only link between the CLSID and the DLL's path.
CLSIDs are used within your projects to specify plugins. When you load a project, SONAR looks up the CLSID in the registry to find out where the file is physically located. It then reads the CLSID from the DLL's file header and compares it against the CLSID that Plugin Manager had previously registered when the plugin was last scanned. If they don't match, that tells SONAR that the plugin on disk is not exactly the same as what was there when the last scan was run. Without this safety check, it's possible that loading an incompatible version of a plugin might not work right, or in extreme cases even crash SONAR.
Because the plugin is identified within the project only by its CLSID, you are free to move DLLs around without messing up projects - as long as you re-scan so that the registry reflects the new file locations. SONAR gets the CLSID from the CWP file, looks it up in the registry to determine where the file is, and loads it from the new location without any fuss.
Developers try to re-use the same CLSID for different versions of the plugin for compatibility. For example, say you have version 1.0 and version 1.0.1 of the same plugin that are functionally identical except for some bug fixes and therefore are mutually interchangeable. The developer will therefore use the same CLSID for both versions and the DAW will not be able to distinguish one from the other. This is why plugin upgrades are usually painless - as far as the DAW is concerned, as long as the CLSID doesn't change it's still the same plugin.
If the plugin has new features, though, the dev may elect to assign a new CLSID to the new version. If the new DLL is subsequently installed into the same location as the old one, you now have a mismatch between the CLSID saved in the registry and the real CLSID baked into the file. If this occurs, SONAR helpfully warns you that the file you're loading is not the same one you were using when you created the project originally. More often than not, the plugin still works, but the warning is there because SONAR doesn't know if the new plugin will work or not.
The problem you're having is a side-effect of having duplicate plugins with different versions and different CLSIDs. SONAR looks up the CLSID in the registry, navigates to its location and reads its internal CLSID, sees they don't match and says "whoa! that is NOT the same DLL I expected".
Your best long-term strategy is to use a single location for all your plugins, or at least a limited number of locations, so that you can more easily eliminate duplicates. You might encounter some "missing plugin" messages when you load old projects. The only cure for that is to remove the plugin and then re-insert it. Yes, that's a hassle. You may have to save the plugin's settings as a preset before removal and then use that preset to restore the settings after re-insertion.
But it's worth the aggravation to get it set up correctly now and avoid hassles down the road.