How to approach implementing a custom page header for each page I am building a site that gives the content managers the ability to craft a masthead image, teaser text, and headline text for each individual page. This will appear in an area outside of node.tpl and -- anyway -- can also appear on taxonomy index pages, etc. 

My current approach involves creating a Header content type and adding an EntityReference field to each entity I use in the site, then modifying page.tpl.php to look for and render that field. But is there a smarter approach? 

Edited 

The site is a multilingual site, so I'm looking for something that supports i18n. That lets Field Collection out, unfortunately.
You might want to look at a solution using Minipanels.

Minipanels are basically Panels (shipped together) that can be used as a block.

You could create a minipanel with the required content and assign that block to the header region for a particular page.

Alternatively, you could set it up as a content type with an image, title and teaser and then a template or view mode to render it in the header.