Hello,
I haven't thought about this kind of thing for a while, but shaking some of the rust off the old coconut an idea or two came to mind. You might have 2 maps so to speak. The main map is your visual display, at whatever size and however you want it to look. The second map, is a memory map or rather a color layout that identifies all of the unique aspects (countries, connections between countries, etc.).
Your memory map is basically a bitmap graphic that is color coded to the features you want to identify. For example, France may a blue = rgb(0,0,128) . When you are moving pieces or pointing at something with the mouse on the main board, you use an algorithm that translates the position to your offscreen or memory map. If the referenced position value matches a particular color (in this case medium blue), then you know what's being identified.
This method will allow you to use any shapes - even the shapes of the countries as your borders are determined by color and not a grid. It also allows you to color or decorate your main map any way you want, and the memory map ends up being your position key.
The 2 maps don't have to be the same size, the memory map can be scaled up or down as you like. You just have to make sure your algorithm that translates the position on the main map to the memory map is accurate.
Enjoy your day.