I can't repeat your issues here.
I've loaded the old sg1000.xml into the profiler, setup an empty rompath, scanned, all sets appear with "missing set" tags and only one monaco set is listed.
Then I've loaded the new sg100.xml into the profiler and cmpro detected that you can update the old one. Fine, done, scanned again, all sets appear with a "missing set" tag and monaco is listed twice because the new datfile holds two monaco games.
Then I've loaded the old datfile again into the profiler, updated the new one with it, scanned, and again all sets are correctly listed as missing sets and again only one monaco set is listed.
So....you need to give me more details, step by step, what you're doing. Plus maybe information about
the files you got in the rompath.
*update* I might have a guess what the issue is about the not showing up "missing set" entry in the 1st scan. I expect you got a monacogp set from the old dat, but since it was completely replaced with a different dump in the new datfile, the set name check did see it as existing in the first scan, while the rom scans of course tell you it's unneeded and removes the full file.
So, first scan, set exists, roms in the archive are wrong though.
second scan, set does not exist anymore (because the unneeded rom was removed) and it correctly lists it with missing set now.
Well, it's a rare effect and based on the fact how cmpro scans. In this case, the rom fixes will alter the state of set checks....I might have a look if this can be somehow prevented but it's not a bug.
Regarding your other "cache" issue, no idea. Can't repeat this here. Sounds more like you scanned or updated the wrong datfile.
*update 2*
I was able to reproduce the "missing set" "missing roms" thingie and I was right. It happens exactly as described above, when a set is completely replaced by a new one. This will be 'fixed' for the next release.