This is a new tool that works best on Linux. It should be possible to use this on Windows and Mac, but some assembly is required, and I don't have those systems on hand to figure it out. If anyone knows how to set up Python3 + Gtk + Pygobject on Windows, some help setting up a readme would be appreciated.
Trainer data is all over the place and it's a pain to edit by hand, so I wrote my own tool. Right now, you just dump all the files in the root of your project and run trainer_editor.py. I think it should have all the features you need, but tell me if you run into any issues! I think most distros should have all the files you need by default (gtk3, python3, pygobject).
The editor should automatically detect the type of the party based on whether, for example, it has moves set. A caveat is that it doesn't automatically fill in moves (except with MOVE_NONE) so if you set moves for one mon, you need to remember to set it for all mons. Ideally it would automatically load mons with default movesets when the party type changes, but that's a feature for another time.