The Linker does not allow to allocate an object across segment boundary. And segments should reflect real available memory blocks.
Defining a big segment as follows BOOT_CODE_SEG = READ_ONLY 0x328000 TO 0x37BFFF; does not help either, as the linker will try to allocate data at address 0x330000 for instance. And there is no memory there...
With HCS12 the only solution is to split your data into smaller 16K blocks.
Many thanks for the very swift response!
I was hoping that wasn't going to be the answer - but I guess I'd better get on with splitting up my data!