I'm working on a couple of sites with similar setups. What I've done is to commission an overall design for all of the pages. Then, I abstract out the parts that have to change for each (a navigation box, depending on where you are, a main graphic, the text of a separate page, and so forth). I break things down into templates on my own, and store those in a database.
I also store all of the page content in the database. Now there's also a web interface (with permissions and security checks) where various people can update the content.
Instead of building pages dynamically from the web server, I have a backend program, either run from cron nightly or activated automatically which walks through the hierarchy and updates any pages that have changed. I can afford to be a little bit inefficient with the substitution and transformation, because it doesn't happen in real time.
This seems to work pretty well for sites of only a couple of hundred pages, with only a few changes every day. Scalability isn't on my list of worries right now.