Thanks Mike, I might try that but I have a working solution... although it feels a bit hacky
// I get the tabID for the selected page in my UrlControl control (ddlPageLinks), then search the TabInfo object for that item
int tabId = Convert.ToInt32(ddlPageLinks.Url);
var redirectTabInfo = TabController.GetPortalTabs(PortalId, this.TabId, true, false)
.Where(t => t.KeyID == tabId)
.Single();
// then update the Settings with that KeyID, and the FullUrl
modules.UpdateTabModuleSetting(this.TabModuleId, "DateRangeHyperLinkUrl", redirectTabInfo.FullUrl);
modules.UpdateTabModuleSetting(this.TabModuleId, "DateRangeTabId", redirectTabInfo.KeyID.ToString());
Then when loading the View.ascx I have the Url to the selected page, and when loading the Settings.ascx control I have the TabId (for the UrlControl's "SelectedValue" property - actually called "Url")