The pointers used to reference the arrays used only 16 bits, and so when you had enough arrays that required the use of a memory space larger than could be accessed by sixteen-bit pointer, you got the error.
I'm not that familiar with the ColdFire memory models, but I can speak to your fix in general terms. A small memory model means everything fits (typically) within 64KB of memory. Or, code occupies one 64KB region, and data another 64KB region. Pointers are therefore, sixteen bits in size.
A large memory model can access memory regions larger than 64 KB. Depending upon the MCU, the pointers might be 24- or 32-bits in size in order to reference the larger memory regions. The compiler can be instructed to generate the appropriate code and pointer size if you specify a memory model during compilation. The large memory model compilation fixed your problem because the 32-bit pointers the compiler generated were capable of addressing all of your arrays.
The memory model scheme serves to optimize the code for applications that either use a small amount of data (small model) or a large amount (large model).
---Tom