Mega2560 fails when sketch size is larger than approx. 52418 bytes

Your sketch gives me:

sketch_may15b.cpp: In function 'void loop()':
sketch_may15b:9: error: call of overloaded 'println(prog_int16_t [3])' is ambiguous
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.h:54: note: candidates are: void Print::println(const String&) <near match>
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.h:56: note:                 void Print::println(char, int) <near match>
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.h:57: note:                 void Print::println(unsigned char, int) <near match>
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.h:58: note:                 void Print::println(int, int) <near match>
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.h:59: note:                 void Print::println(unsigned int, int) <near match>
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.h:60: note:                 void Print::println(long int, int) <near match>
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.h:61: note:                 void Print::println(long unsigned int, int) <near match>

It Serial.prints 7, 8, 9 despite using a direct reference to the Array.

Well, not for me it doesn't.

Maybe we are using different versions of the IDE. I believe I have the latest (0022).