If I understand correctly, the program from the sd card is copied to RAM. It is possible that there is already so much that the program (and RAM value etc Buffer) reached the address where the data for the display is.
It will not be easier to move the incriminated data further by a few KB
The way it works is that the F1C100s boot loader checks sector 8 of the SD card to see if there is an eGON header there. If so it loads the code found to the boot RAM, which is only 32K. The it jumps to this code to execute it.
This is the "fnirsi_1013d_sd_card_bootloader" code. It initializes the DRAM in the F1C100s and then loads the next program from the SD card, which starts at sector 48. It also loads the data from sector 710.
//----------------------------------------------------------------------------------------------------------------------------------
#define PROGRAM_START_SECTOR 48
#define DISPLAY_CONFIG_SECTOR 710
The next program is "fnirsi_1013d_startup_screen" to show the PECOs SCOPE screen. This is loaded to memory address 0x81C00000. The boot loader jumps to this address to execute that code.
This bit of code loads the final program from sector 92 into memory starting at address 0x80000000 and executes it after showing the startup screen.
//----------------------------------------------------------------------------------------------------------------------------------
#define PROGRAM_START_SECTOR 92
The binary that is loaded to the SD card contains all three bits of code such that the starts correspond with the given sectors. To do this I wrote the flashfilepacker program, but that is setup to run on linux.
I don't think the problem is with the data on the SD card, but with the allocation of the data in the scope program.
Try to find the differences between 19d and the version where it started to fail.