Trade it with ur friend.simple.
To catch garintina
You can't catch him, but you can transfer him with a friends ds to yours.
After you beat/catch garintina in diamond you could keep training or just keep fighting the pokemon league. Also, you could go catch more legandary pokemons.
You can't catch Rotom in heartgold.
you cant catch him in heartgold you can only get him in soulsilver
In HeartGold you can catch Kyogre.
You can only catch Vulpix in SoulSilver, not in HeartGold. You can catch it on route 36 and route 37.
No
In pokemon Heartgold
You cannot catch Garitina on Pokemon Black. However, you can trade for one or transfer one from a DS Series game.
you cant catch it it is rare
garintina