On the master, you have 3 500 byte arrays, to hold the received data, to hold a useless copy of it, and one that is not used.
You also have 385 bytes used in 4 other arrays. Those 7 arrays are using 1,885 bytes of the 2,048 bytes of SRAM that you have, leaving 163 bytes for all the rest of the variables (including the software serial buffer(s)) and the stack.
Do things improve if you STOP COPYING THE DATA? If you delete the unused array?