I would add a component to every compset that needs to be era-specific. This component would consist only of a <containerreq> test that looks at a tag group that stores what eras are allowed for that item, comparing it against hero tags that are added by the sources, saying what eras are currently in use. You're basically recreating the sources mechanism with tags, but setting it up in a way that the era choice is independent of the book choice.
Then, the various books would be handled as normal sources.
|