Here's what we do know:
1. The encryption has something to do with the checksum ($04-07). If you change any parameter that results in a new checksum (edit trainer IDs, date caught, etc. etc.), $08-87 have brand new values.
2. It's encrypted byte by byte, not in four-byte chunks (like in Emerald). If you look at my colour-coded image from a few posts ago, changing $43 in the encrypted code (which corresponds to $23 in the original: sheen), that's the only value affected.
3. It's not XOR encryption, because the bytes with the same value, e.g. 00 or ff in the original don't get mapped to the same value in the encrypted version. This wasn't the case in Emerald: if you had a row of 00's, all of them get XOR'ed to the same value in the encrypted data. I don't know if it's modular exponentiation, i.e. a^b mod c, but I'd imagine the game would use something more advanced than these basic encryption methods.
I really wish the creator of PokeSAV would just release his source code. What a waste of time for me to be trying to reverse-engineer this myself when someone else already has the answer...it's not like either of us is working for profit.