I spent a while today organising my code to make it more presentable, adding a dictionary to reduce later scope problems, and putting all the controls into a new tab structure. This last part was tricky as due to a bug in Maya 2011 I was getting an extra blank tab if I added the tabLayout as a child of the window. If I add it as a child of another type of layout (I went for a column layout but form works too apparently,) then the tab disappears.
The solution was found on the CGSociety forums. I probably wouldn’t have stumbled upon it for ages had I not found this.