Just as an update, I have been working away at my C++ library. There's quite a bit of open-ended functionality now. At this point one could use it to create a program that can:
Encrypt and / or decrypt a PC storage Pokémon (or party Pokémon) at will
Get or set any data for any Pokémon, and do that in a pretty readable way thanks to various value enumerations for species, items, in-game locations, etc.
Get or set the values and quantities of bag items
Fix checksums for Pokémon data, block data for the party, PC storage system, items, the save file as a whole, and really any other block you know the location for.
Sort Pokémon based on criteria of your choosing (work in progress)
As another proof of concept, here is a sample of how one could use my library to, say, turn every Pokémon in a given save file into a Psyduck:
If there are any further questions, feel free to email or PM me!