I finally did get a full error message. In the process of hacking out parts of the <tabs> section to see what if anything changes I got this:
Error parsing Website
TemplatePage Exists in portal: 3, path: , culture: at
DotNetNuke.Entities.Tabs.TabController.ValidateTabPath(TabInfo tab)
at DotNetNuke.Entities.Tabs.TabController.AddTabInternal(TabInfo tab,
Int32 afterTabId, Int32 beforeTabId, Boolean includeAllTabsModules)
at DotNetNuke.Entities.Tabs.TabController.AddTab(TabInfo objTab,
Boolean includeAllTabsModules)
at DotNetNuke.Entities.Tabs.TabController.DeserializeTab(XmlNode
tabNode, TabInfo tab, Hashtable tabs, Int32 portalId, Boolean
isAdminTemplate, PortalTemplateModuleAction mergeTabs, Hashtable
modules)
at DotNetNuke.Entities.Portals.PortalController.ParseTab(XmlNode
nodeTab, Int32 PortalId, Boolean IsAdminTemplate,
PortalTemplateModuleAction mergeTabs, Hashtable& hModules,
Hashtable& hTabs, Boolean isNewPortal)
at DotNetNuke.Entities.Portals.PortalController.ParseTabs(XmlNode
nodeTabs, Int32 PortalId, Boolean IsAdminTemplate,
PortalTemplateModuleAction mergeTabs, Boolean IsNewPortal)
at DotNetNuke.Entities.Portals.PortalController.ParseTemplate(Int32
PortalId, String TemplatePath, String TemplateFile, Int32
AdministratorId, PortalTemplateModuleAction mergeTabs, Boolean
IsNewPortal, LocaleCollection& localeCollection)
at DotNetNuke.Entities.Portals.PortalController.CreatePortal(String
portalName, UserInfo adminUser, String description, String keyWords,
PortalTemplateInfo template, String homeDirectory, String portalAlias,
String serverPath, String childPath, Boolean isChildPortal)
It doesn't tell me a whole lot but for what it's worth there you go.