It sounds like you are saying the row headers are very short, and at the same time that they are too long. Maybe you just have a way of confusing me. I would simply not want long row headers anyway, even without these problems.
I would consider this a long row header, especially when it contains special characters.
In general I would prefer never to put colons, backslashes or periods in any row headers if at all avoidable (sticking to the general rules for standard sql identifiers - only alphanumeric and underscore characters and not starting with a number). Since you are having pretty serious problems you probably want to check that headers don't have MSAccess or VBA keywords as names, either - just to rule out the very weird that would be impossible to track if it were causing trouble.
If you are pushing crosstabs to their limit it might be time to consider a more robust database solution anyway. It might be possible to create the report without crosstabs, as another solution. To fix this bug, assuming another explanation cannot be found, you'd have to get in touch with Microsoft (which, actually, may be very receptive to investigating this, especially if you can provide a repeatable test case to demonstrate the problem).
Really, it may be worthwhile re-considering the whole structure here. That's a huge query for Access so why is this in Access and is there a better way to crunch this data?