fact parsing was a problem with a template not the hiera code.
The only way I get this working is if I do a lookup in a profile manifest of the main hash, then reference that variable back in hiera.
This seems wrong, and coupled, and flakey, which is why it's listed as a bad practice on the puppetlabs documentation.
However, apparently we did this another time trying to solve the same problem.
In software, seeming to be forced into an anti-pattern twice would indicate there is a better design. If anyone has any thoughts here - we want to hear it! Either that or we need a different hiera function for this.