Thanks.
One thing I forgot to shed light on is that obviously, every single one of those modifications were tested with the utmost accuracy on my NDS lite.
Did you know the animation for the cutscene where the Kimono Girls are dancing to summon the cover legendary is actually dependent of a single byte, who in turn is independent of Lugia and Ho-Oh? (I'm talking about the waves for SoulSilver / falling leaves for HeartGold)
If that byte is 07, then the cutscene will play the HeartGold animation; if that byte is 08, then the cutscene will play the SoulSilver animation.
So what I did is an ASM hack to check upon each location change the current location, and thus if the current location is the one referred with the Location ID 340 (0×154, which refers to the Tin Tower's roof), then the cutscene byte will be changed from 08 to 07, else if it is any other location, that byte will be equal to 08.
Check in the RAM viewer for the offset 0×20F566C if you want to test it.
Unrelated but likewise, if the byte located at offset 0×20F5670 is equal to 02, then the titlescreen will be the HeartGold one, if it is equal to 03, then the titlescreen will be the SoulSilver one.