This is not an issue with the PageLayout control, but with the application itself. To replace a map within a MapFrame on a page layout, manually disconnect the Map from the MapFrame; otherwise, it leaks.
For example using the following code:
IActiveView active_view = pMapFrame.Map as IActiveView;
active_view.Deactivate();
active_view.Clear();
active_view = null;
pMapFrame.Map = null;