You've already accepted this as your own answer, but I would like to offer you how I handled a similar problem previously in converting two "identical" websites into a singular project to handle both. I had two separate web domains hosting almost identical applications formatted to separate brands for different companies. I needed a single solution with common code that would be able to serve, function and log independently based on the domain being served.
First, we created base controls (base page, base user control) that housed all of the business object data we would need regularly (session, viewstate, basic properties, anything we knew we'd need universally). Within the base page in our class library, we created a property to identify which site was being served (scalable as this is an enumeration).
In the actual structure, we created a folder for each company that needed its own branded, and inside there we created the actual aspx pages that assigned master pages that governed style and branding. Within the master pages we included our user controls. All of our application controls were built with styled user controls. This way the functionality of the actual application is held in the same place, but it can be called for multiple brands. On top of that, there were minor differences to the applications depending on the brand. These exceptions were coded into the user controls so that they could be easily identified for future maintenance, and in some cases a user control was used solely in one brand for a specific purpose.
This segmentation has allowed us to keep the site map a little cleaner, provide multiple interfaces to the same application without having to rewrite the application, and with the base controls/pages we have been able to make development easier for anyone new to the team. Once they're familiar with the base classes and architecture layout, they can find anything in the site to which they are assigned.