One of the experiments I recommended was to switch to text mode and back. That requires a game that allows you to do this, or at least allows you to use client-side winset commands like this:
.winset ":map.text-mode=true"
.winset ":map.text-mode=false"
The reason for trying that is, it will absolutely force GetMapIcons() to be called with the update parameter set to true. If the map updates or not, that should narrow down where the issue is happening.
Also can confirm, doesn't have anything to do with fullscreen, but I do run multiple monitors. Sometimes two sometimes three, is this a recurring trend?