I've looked into the Stadium 2 savefile to locate registered teams and also coded a dumper that exports the registered pokémon as pk2 files ready to use with pkhex. This may help some people get their original pokémon back, if they ever registered them on Stadium 2. As a bonus, this can be used to dump the rental pokémon if you register them.
Note about the dumps: registered pokémon lose the extra 0x50 terminators in the nickname (when a pokémon is never nicknamed, all extra bytes are set as 0x50, when nicknamed they are set to 0x00). This has no real impact, but it's a pitty they aren't 1:1 copies. (The status condition is also lost, but that isn't important either so...).
UPDATE 11/04/2021: Pkhex supports all pokémon stadium savegames as of now, but since it seems I missed many registered teams in the initial release, I've updated the dumper so it dumps all teams in pk2 and sk2 format, optionally it will put RENT as OT name for rental pokémon in case someone wants to use them in a gen 2 game withouth manually inserting an OT. I've also included ED64-Saveswap in the file for convenience.
UPDATE 14/03/2020: It seems Stadium 2 never actually stores the "full" name of the pokémon. The name is stored only until a 0x50 terminator is found. This makes depositing the pokémon in stadium 2 become "nicknamed". This doesn't make any actual different, but on the GBC games this wouldn't happen as the game seems to keep copying the bytes 0x50 bytes. Because pokémon data in boxes in the GB games isn't actually erased but rather the box slot is marked as "empty" when you withdraw/release/move pokémon, there is a chance that when you return the pokémon to GB the pokémon will become unnicknamed again, depending on the pokémon that was stored in that slot before. If one would like to return the pokémon to the "unnicknamed status", the easiest would be to have an unnicknamed evolved or wild muk stored in the box (because it's the shortest pokémon name and all chars besides the first 3 will be 0x50). Then put a pokémon from stadium 2 into that box in the same slot muk was. This is easiest done in a box with 19 pokemon, deposit muk in GB, withdraw, then deposit pokémon from stadium 2 into that box.
This doesn't happen with OT name, it is fully copied. I suspect this is done so only full OT name + ID can nicnkame a pokémon (the pokémon being marked as nicknamed or not is irrelevant).
Thus, this finding makes any registered pokémon recovered with the dumper be actually the same one you had back in your day.
Registered teams start at 0x4000 in the savefile, here's the structure:
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 + 1 byte padding 0x00) (default 0x5000)
0x10 Start of party pkmn, 0x3C each; uses a similar GB storage format:
0x00 1 species
0x01 1 held item
0x02 1 move 1
0x03 1 move 2
0x04 1 move 3
0x05 1 move 4
0x06 2 OT ID
*0x08 4 EXP (1 byte extra padding)
0x0C 2 HP exp
0x0E 2 Atk exp
0x10 2 Def exp
0x12 2 Spd exp
0x14 2 Spc exp
0x16 2 DVs
0x18 1 PP 1
0x19 1 PP 2
0x1A 1 PP 3
0x1B 1 PP 4
0x1C 1 friendship
0x1D 1 level
0x1E 1 status condition? (status is set to 0 when the pokémon is registered) (might be padding)
0x20 2 Caught data
0x22 1 Padding? (might be status condition)
*0x24 12 nickname (GB encoding, 0x50 terminated) (1 extra padding byte)
*0x30 12 OT name? (GB encoding, 0x50 terminated; 0 if rental) (1 extra padding byte)
0x178 2 Padding? always 0x0000
0x17A 4 Footer 'P3v0' (0x50337630)
0x17E 2 Checksum (UByte 8 bit) Computes Header + party data + footer
Download (source code included): stadium2dumper.zip
Stadium2Dumper_0.2.zip