In an attempt to perform this action I have overridden the event using:
this->Connect (ID_MyEvent, wxEVT_AUI_PANEBUTTON, (wxObjectEventFunction) myHandler);
The handler function then uses the following (m_mgr is declared private in this class).
wxPanelInfo temp = m_mgr.GetPane (SamplePane);
And the restore method (in a different pane, same class).
wxPaneInfo temp = m_mgr.GetPane (SamplePane);
Adding debug information (a pile of log data, IsShown, hasCaption etc) shows that the SamplePane is still active and is correctly hidden and shown programatically, however the frame manager successfully hides the pane (removes from display) however the pane is never reshown.