First I should point out that those are codes for Crystal; the Gold Version equivalent codes to have all decorations are:
01FF0BD8
01FF0CD8
01FF0DD8
01FF0ED8
01FF0FD8
01FF10D8
01FF11D8
So it's important to know how Gameshark codes are set up in the first place:
[WW][XX][YY][ZZ]
WW: Specifies the type of code and the VRAM bank; in almost all cases this is 01. Crystal uses 91 sometimes; i'm not 100% sure why but I do know Crystal has some somewhat more complex than average RAM handling (as far as GB games go, anyway)
XX: The value the address is being set to. In all of your examples, this is FF, which would just be a hard "yes, the player owns this decoration/decorations"
YY: First address byte; but it's little-endian so it's switched with the ZZ byte
ZZ: Second address byte, same deal as above. In a code that has, for example, ABCD as its address bytes, that would mean the code is modifying RAM address CDBA.
https://gbatemp.net/threads/guide-how-to-create-gateway-cheat-codes.410926/
Now, from this guide it LOOKS like you would only have to deal with the first types of code listed, i.e., memory writes, specifically 8-bit.
"
2XXXXXXX 000000YY – 8bit write to [XXXXXXX + offset]
writes the 8-bit value we specify to the given address. This manipulates a single byte. Two 8-bit writes can replace a 16-bit write, however endianness has to be taken into account. See Note at the end of the tutorial about endianness."
One of the given code examples is:
"23BA110C 00000099 – writes the value 0x99 (153) to the address 0x3BA110C. Manipulates only the byte at address 0x3BA110C."
So...
If we take the first code in the list, 01FF0BD8.
01, I don't think needs to be considered. FF would go at the very end of the Gateshark code, as the value being set. And the address bytes would be put in big endian and put in the address part of the code.
So, and I hope I've done all this right, the finished Gateshark code would be:
2000D80B 000000FF
Rinse and repeat for the rest of them.
2000D80C 000000FF
2000D80D 000000FF
2000D80E 000000FF
2000D80F 000000FF
2000D810 000000FF
2000D811 000000FF
Now, this is all assuming that the Virtual Console doesn't handle RAM in a different way that would make these addresses wrong. If that's the case then... That would be where my educated guesses end :V So I would strongly suggest backing up your save first if possible.