Crosstabs don't make for good queries when the number of distinct rows is dynamic because as you probably have figured out, CT fields that don't exist in the source throw an error. I don't get why you're not using a more compatible/traditional form/subform datasheet configuration. Why not have a datasheet below a main/top level data section?
I can only think of one scenario that would be an exception (i.e. where something like a dynamic crosstab is required) and that is if you HAD to have a delimited list that needed to be transposed into rows).
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.