Editing them is really easy, as they have a very similar file structure to Awakening's.
I'm still halfway through Hoshido, haven't even touched Nohr nor the 3rd path, so I'm going to try and constrain myself from breaking the game before I fully enjoy the story, but I can share what knowledge I have of it right now.
Here's what happens when I'm bored.
If the files are the same as Awakening, every .bin.lz file should have a similar structure.
These should be decompressed with FEAT and compressed with BatchLZ77.
Do note that in these files, the bytes are usually flipped, and most of them are pointers that lead to other pointers than then lead to what you're actually looking for. General rule of thumb for pointers is to first subtract 0x20 and then flip the bytes, or if you want to follow them, reverse the bytes and add 0x20.
At 0x0 is the file size of the .bin file, this value is flipped, so say the total filesize of the .bin file is AE24, this value would be written as 24 AE.
At 0x4 is a 4 byte pointer, this points to a table of pointers, and like explained above, to follow it, reverse the bytes and add 0x20, so say the value is listed as 45 AB, reverse it, AB 45, and add 0x20, AB 65, going to this address will get you to the table of pointers, following those pointers will lead to other pointers, which then lead to the actual data you're looking for.
At 0x8 is a 4 byte value, also flipped, which says how many pointers are located in the pointer table previously mentioned from 0x4.
Then as far as the rest of the file structure, each file has a different structure, but the first part as explained above applies to all decompressed .bin.lz files.
The file that decides which units spawn in a map is located in GameData/Dispos, conveniently numbered by chapter and organized by routes.
In this files, after the initial header data, At 0x20, starting from there, 0xC bytes, these blocks indicate what "team" the characters are for, 0x20 is a pointer to a name label, for example, in 01.bin it points to "Player" as in, playable units, in 0x24, is a pointer to where the character blocks for this team start, and in 0x28 is how many character blocks it will read in this team, then at 0x2C you get the label for team 2, 0x30 pointer to the start of the block, 0x34 number of character blocks, etc, until the first character block is finally reached.
Actual character blocks are 0x8C bytes in size, while Awakening's character blocks where extremely easy to map out, Fate's blocks are giving me some trouble, I tried adding Amiibo units to a map but am having no success so far, here's what I have mapped out so far;
For unit position, X2 Y2 are the map coordinates where the unit moves during a scripted event, then right as the player is about to gain control, they will move to X1 Y1, a lot of characters don't move and simply have the same coordinate twice, do note that coordinates start from the left uppermost part of the map, and this coordinate represents 01 01, not 00 00.
Everything else is just guess work and poking and prodding.
If you're interested in hacking Awakening, I've posted a lot in
here, from this page forwards is where I've mostly posted my findings and have extensively explained most of it, so just read on from here to the most recent post.