In-game trades in FR are at 0x26CF8C. The scripts relating to them store very little information, and just index into this table. Each entry is 0x3C bytes, used as such:
0x0 - Nickname, limited to ten characters + 0xFF.
0xC - Half-word, ID of the NPC's pokemon.
0xE - IVs, stored in HP/Atk/Def/Speed/SAtk/SDef order. One byte each.
0x14 - An entire word dedicated to the ability bit.
0x18 - NPC's trainer ID. Only the low bits are visible on the status screen.
0x1C - Five bytes; four of them are 5 and one is 0x1E. Not sure what they do if anything.
0x24 - Personality value; influences nature, gender, etc; more info here:
https://bulbapedia.bulbagarden.net/wiki/Personality_value
0x28 - Hold item.
0x2A - 0x00 if the mon carries mail (only ZYNX has mail in FR), 0xFF otherwise.
0x2B - Original trainer's name. Limited to seven characters + 0xFF.
0x36 - 0x00 if original trainer is male, 0x01 if original trainer is female. Only visible in RSE.
0x37 - Always 0xA. Not sure what it controls if anything.
0x38 - Half-word, ID of the species the NPC is looking for.
0x3A - Half-word, seems unused.