You can manage the maps that are in a document via IMxDocument.Maps.
All you need to do is keep up with your own collection of maps. When a document is opened, load your collection from the document's maps collection. You "hide" a map by removing it from the document's maps collection. You "show" the map by adding the map from your collection back into the document's maps collection. When a document is closed, load all of the maps from your collection back into the document's collection so that the document remains unchanged.