The logic was explained by the user earlier.
Certain materials are able to retain as static figure. Some would revert back to 0 figure.
To have soldier waist guard appearing, only Enable Misc materials. If you enable myrmidon material after that, somehow the cheat would trigger other materials to become 0 figure.
I'll tell you why: you are writing a 4 byte value onto a 2 byte address. You can only have 255(actually it should be 65535 with 2bytes) of each item and since the items in memory are all next to each other you overwrite them.
Example:
08BD20D0 is "Lianna's Hairpin"
08BD20D2 is "Lianna's Cape"
08BD20D4 is "Chrom's Leather Belt"
(btw 08BD20D6 is unknown, probably a material too)
if you write 255 as 4 byte value, you write 0 x 00 00 00 FF
You write 0x00 00 00 FF to 0x08BD20D0 and you end up writing (because of little endian)
0x08BD20D0:
FF < Lianna's Hairpin
0x08BD20D1:
00
0x08BD20D2:
00 < Lianna's Cape
0x08BD20D3:
00
0x08BD20D4: 00
< Chrom's Leather Belt
0x08BD20D5: 00
if you then write 0x 00 00 00 FF to 0x08BD20D2 to get the Cape, too, you end up having:
0x08BD20D0: FF
< Lianna's Hairpin
0x08BD20D1: 00
0x08BD20D2:
FF < Lianna's Cape
0x08BD20D3:
00
0x08BD20D4:
00 < Chrom's Leather Belt
0x08BD20D5:
00
all good... but if you go for the Hairpin again you end up with
0x08BD20D0:
FF < Lianna's Hairpin
0x08BD20D1:
00
0x08BD20D2:
00 < Lianna's Cape
0x08BD20D3:
00
0x08BD20D4: 00
< Chrom's Leather Belt
0x08BD20D5: 00
and thus overwriting the Cape. The solution is to change the gateway codes to write a byte instead of a word... so instead of going for
08BD20D0 000000FF
you have to write
28BD20D0 000000FF
Currently you overwrite one material everytime you try to hack one to 255.
P.S.:
Same thing happens with soldiers wait guard and myrmidon head guard:
08BD214E Myrmidon's Head Guard
08BD2150 Soldier's Waist Guard
The two values are 2 byte away from each other and you end up writing 4 bytes into them, thus overwriting the material next to it in memory.
Edit: lots of edits, I cant into math and base16