Not had chance to look at the code properly yet, but it looks like you draw the world (Globe.cpp) in polygons after adjusting them on world rotation and zoom, could you not simply perform your mouse check against this polygon set, rather than the initial globe set?
They must be accurate, because you draw them, and you'll know which ones are visible by the backFace variable.
And to save recalculating these, you could create a visibleWorldPolygon list as you're drawing the globe with the real polygon they tie up to, their calculated draw polygon, and any other information
Edit:
I appreciate that's not exactly what you asked for, so here's another solution:
Let's assume you have coordinate (X, Y) to check, as I'm processing each polygon, I would use this to identify if the polygon crossed the "edge"
HasLeft5PC = False
HasRight5PC = False
For Each Point in Polygon
If Point.X < (Map.Width / 20) Then HasLeft5PC = True
If Point.X > Map.Width - (Map.Width / 20) Then HasRight5PC = True
Next
If so, I would check if X > Map.Width - (Map.Width / 20) and X = X - Map.Width (Making X a negative value on the map)
In my Polygon test, I would then do the same and check if it's in the right 5% of the map, and subtract the map width to make it negative.
This means your polygon will all be based around zero, going negative as well as positive, and you're standard checks would work fine.
If you're using unsigned variables, you could always push it the other way, to add the map width to those points in the left half of the map.