I finally figured this out. I wasn't approaching the problem correctly. I had to change my ASP code to be an ASP:Placeholder:
Then at the end of my code, instead of assigning the new table to the existing table (which is now gone), I replaced the placeholder control with the new table:
tblBrowserOSTable.Controls.Clear();
tblBrowserOSTable.Controls.Add(newTable);