Hello! I am also trying to crack the checksum for Pokemon Sapphire save data.
I will share my progress so far:
Every block of 0x1000 has a 16-bit checksum at position 0xFF6-0xFF7.
This checksum can be *nearly* calculated by summing up 16-bit words from 0x000-0xFF0 in the block.
This is close...