Regarding recent change to marker/region API...
I know this is old bug, but since you're working on that part of code I'm taking the oportunity to mention this:
These functions work by accepting ID, but that ID can be shared by multiple markers and regions.
Thanks to that, things can really break.
For example SWS auto color tool can change names and position of markers when simply coloring them.
We can sort this on our end by renumbering markers/regions with duplicate IDs before using EnumProjectMarkers/SetProjectMarker API - but that can mess with someone's numbering scheme.
Or you could add yet another API that works by accepting the int returned by EnumProjectMarkers
Thanks