Posting my finding on the offset locations for the Registered Teams. It seem that the Japanese version (G&S) only has 10 registered teams per mode, which puts it in line with the English version. Also will be clarifying the Pokemon data structure. First the is a registered team is made using OP's post as a base:
Registered parties are 0x180 each: 0x10 header + six 0x3C pokemon structures + 2 bytes padding, 4 byte footer and 2 byte checksum
0x00 Header:
0x0 1 True if team is present (0x00 if no team)
0x1 1 Padding 0x00
0x2 2 trainer ID (default 0x0000)
*0x4 12 Trainer name (GB encoding, 0x50 terminated + remaining byte padding 0x00) (default 0x5000)
0x10 Start of party pkmn, 0x3C each; uses a similar GB storage format:
0x00 Index number of the Species 1 byte
0x01 Held Item 1 byte
0x02 Move 1 1 byte
0x03 Move 2 1 byte
0x04 Move 3 1 byte
0x05 Move 4 1 byte
0x06 OT ID 2 bytes
*0x08 Experience points (1 byte 4 bytes
extra padding at beginning)
0x0C HP EV Data 2 bytes
0x0E Atk EV Data 2 bytes
0x10 Def EV Data 2 bytes
0x12 Spd EV Data 2 bytes
0x14 Spc EV Data 2 bytes
0x16 DV Data 2 bytes
0x18 Move 1's PP values 1 byte
0x19 Move 2's PP values 1 byte
0x1A Move 3's PP values 1 byte
0x1B Move 4's PP values 1 byte
0x1C Friendship or Hatch Counter 1 byte
0x1D Level 1 byte
0x1E Status** 2 bytes
0x20 Pokérus Status 1 byte
0x21 Caught data 2 bytes
0x23 1 Padding?
*0x24 Nickname (GB encoding, 0x50 12 bytes
terminated) (1 extra padding byte)
*0x30 OT name (GB encoding, 0x50 12 bytes
terminated; 0 if rental)
(4 extra padding bytes)
0x17A Footer 'P3v0' (0x50337630) 4 bytes
0x17E Checksum (UByte 8 bit) 2 bytes
Computes Header + party data + footer
*If OT Name is short, 0x50 is used to fill in rest (7 characters total in English, 5 in Japanese).
*Japanese version is mostly the same except for one difference in Nickname and OT Name.
Nicknames can only be 5 bytes, has 0x50 terminator, and 6 bytes of padding. Same with OT names. Both will have 0x00 padding to fill 12 bytes each.
**Status is set to 0 when the pokémon is registered or in box. Set to 1 if Egg in box. Set to 4 if it is a rental Pokemon in a registered team. There is one byte padding afterwards.
Thanks to @Kaphotics for figuring out which byte Pokérus is. For example, D1 = strain 13 and 1 day left.
Use this chart for English Nickname and OT: https://bulbapedia.bulbagarden.net/wiki/Character_encoding_in_Generation_II#English
For Japanese Nickname and OT: https://bulbapedia.bulbagarden.net/wiki/Character_encoding_in_Generation_II#Japanese
Here are the locations for the Registered Teams (same in English and Japanese versions):
Anything Goes Little Cup Poké Cup Prime Cup Gym Leader Castle Vs. Rival
01 0x0 0xF00 0x1E00 0x2D00 0x4000 0x4F00
02 0x180 0x1080 0x1F80 0x2E80 0x4180 0x5080
03 0x300 0x1200 0x2100 0x3000 0x4300 0x5200
04 0x480 0x1380 0x2280 0x3180 0x4480 0x5380
05 0x600 0x1500 0x2400 0x3300 0x4600 0x5500
06 0x780 0x1680 0x2580 0x3480 0x4780 0x5680
07 0x900 0x1800 0x2700 0x3600 0x4900 0x5800
08 0xA80 0x1980 0x2880 0x3780 0x4A80 0x5980
09 0xC00 0x1B00 0x2A00 0x3900 0x4C00 0x5B00
10 0xD80 0x1C80 0x2B80 0x3A80 0x4D80 0x5C80
Offsets for Boxes in Professor Oak's Lab:
English boxes are 0x4D8 each: Japanese boxes are 0x750 each:
Box 1 0x5E00 Box 1 0x5E00
Box 2 0x8000 Box 2 0x8000
Box 3 0x84D8 Box 3 0x8750
Box 4 0x89B0 Box 4 0x8E60
Box 5 0x8E88 Box 5 0x9590
Box 6 0x9360 Box 6 0x9CC0
Box 7 0x9838 Box 7 0xA3F0
Box 8 0x9D10 Box 8 0xAB20
Box 9 0xA1E8 Box 9 0xB250
Box 10 0xA6C0
Box 11 0xAB98
Box 12 0xB070
Box 13 0xB548
Box 14 0xBA20