when I first started with XPages that I too used the tab panel, and if my memory serves me correctly I had a similar problem. I no longer use the tab panel what I now do is create a number of links that set a viewScope variable that I use to set the style property of a related panel. In the style property I set the panel to display something like this"
viewScope.vsShowPanel = "Header";
var showPanel:String = viewScope.vsShowPanel;
(showPanel == "Header" ) ? "" : "display:none";
I use this rather than the visible property because the visible property does a bunch more than just making the object visible or hidden. Then my navigation link sets the value of vsShowPanel
<li role="presentation" class="active">
<xp:link id="headerLink" text="Header">
<xp:attr name="data-toggle" value="tab">
<xp:eventHandler event="onclick" submit="true"
</li><!-- li role= -->
i'm using BootStrap to format the link display.
By doing this you have full access to all controls (fields) on your page no matter whether they are being displayed or not. You will need to make sure that your link refreshes links and the panels, I just include them all in the panelMain.
I don't know if this is the best way to accomplish this but it works for me and appears to respond quickly even when there are a lot of panels (tabs) and a fair bit of computed info.
A side benefit is that you can put lots of different logic onto your page fairly easily by hiding links and panels under different circumstances.
Hope this helps.