The anime is known to have huge amounts on continuity errors when compared with the games, and I've learnt to believe the information found in the games rather than that of the anime. Gyarados is a long Pokemon, but he's not world-destroyer, slayer-of-continents big. He is a lot more like an anaconda with a little inspiration from Chinese dragons thrown in for good measure.
Rhyperior, Tyranitar and Mamoswine are about two metres tall in the anime. Ash started out ten years old, and even though there's been little to no mention of his age since the begining, it's probably only been a few years from there to the Black/White series of the anime. He's not fully grown yet, remember. Everything seems a lot bigger when you think of Ash as an average sized character. The average Pokemon isn't that much bigger than an ordinary animal, really.