The differences between gold, silver and crystal are:
In gold you can find Ho-oh at level 40 and it will know Sacred fire in silver lugia can be found at level 40 and it will have aeroblast.
In gold lugia is level 70 and doesn't have aeroblast.
In silver Ho-oh is level 70 and doesn't have aeroblast
In gold and silver Entei, Suicune and Raikou will be met randomly and in crystal suicune will actually battle instead of fleeing
In crystal both Ho-oh and suicune are level 60
Exlcusive pokemon:
Ekans, Arbok, Vulpix, Ninetales, Meowth, persian, spinarak ariados, Teddiursa, Ursaring, Mantine and gligar can't be found in silver but can be found in gold.
Sandshrew, Sandslash, Growlithe, Arcanine, mankey, primeape, ledyba, ledian, phanphy, donphan and skarmory can't be found in silver.
Remoraid can't be found in crystal.
Differences between ruby/sapphire/emerald.
In ruby zangoose, mawile, groudon, seedot (and its evos) and solrock can be caought but seviper, lunatone, kyogre and Sableye will not be in the game they can be found in sapphire.
In emerald: You can catch Mew and Deoxys (only obtainable through cheating or nintendo events) you can catch both kyogre and groudon and rayquaza can be found before the pokeleague you can also get both fossil pokemon (lileep and anorith) in emerald Zangoose, lunatone, sableye, seedot, lotad, latios and latias I'm not sure if that's all.