Are you using the Library in Mp3tag? And have you disabled updating the file timestamp when updating tags in MediaMonkey?
If so, you need to take care of reloading the files by yourself as Mp3tag has no way of detecting the change on load. You can do this via Ctrl + T or "File > Read tag" once you've selected the files in Mp3tag.
I updated to the MediaMonkey v4.1.23, set ratings new, reload in Mp3tag and also looked up the extended tasks (Alt+T), but %rating mm% is not filled and also gets overwritten after saving in Mp3tag.
I'm asking, because this is the root cause of the problem you're seeing. In Mp3tag, tag versions are prioritized in this order ID3v1 < ID3v2 < APEv2. So if the file has an APEv2 tag and you've enabled reading of APEv2, this tag gets displayed.
If you then write the tag, and have also writing of ID3v2 enabled, the tag that was displayed gets written to the ID3v2 tag.
Since the APEv2 tag of your test file doesn't contain RATING MM, it isn't available if you read APEv2 and overwrites the ID3v2 tag on save (and eventually removes the RATING MM from the ID3v2 tag).
So if you don't have a specific reason to use APEv2, I'd disable reading and writing of APEv2 (which is also the default on new installs).
Normally, you'd want to remove all tags from the file if you remove tags. An exception would be to remove a specific version (e.g., all APEv2 tags, where you'd disable ID3v1 and ID3v2 temporarily).