I think the key is to destroy all the entities that are associated with cities and units of the normal map. It might be enough to set them invisible but that needs to be tested.Well, maybe I should look into that then. IMO that would be the optimal solution.
You can recreate them afterwards.
Then the symbols like feature, routes, rivers need to be removed (not the information itself but their graphical representation via the right interface).
(Fun fact: The Civ4 engine can have more than one feature symbol on the same plot).
Last the plot builders need to be destroyed (they are responsible for improvements and bonuses).
Some fog of war changes might be needed as well.
That should unlink your normal map from the graphics engine and you can then swap it and create the correct graphical representations for the tactical map.
Actually that is not even that much code.
Go through all cities of currently displayed map and destroy (maybe set invisible) the entity.
Go through all units of the currently displayed map and do the same.
Go through all plots of the currently displayed map and deal with its graphical elements (check the different methods in CvPlot.cpp that deal with the symbols or plot builder or fog of war). Rebuilding the plots now might be needed.
Swap the map.
Now do the inverse with the new to be displayed map. For the plots you can probably use the existing methods for setting up the graphics.
Go through all cities and units of the new to be displayed map and create the entity.
Likely RebuildAllPlots should do the job now unless InitGraphics has to be called first.