why cant my gyarados learn surf I think my game must be glitched
This is quite strange. Surf is HM03 in every generation and Gyarados learns it in each. You are either not trying to teach it with an HM and attempting to level it up, you have 4 moves, your Gyarados is stupid, or your game is glitched.
sometimes a Gyarados doesn't know surf because of a glitch or hack or something.