I am not sure a completely understood the situation. If he is running so fast that the only thing he can do is "fall" into a canter, then it's a balance issue.
At the canter, you need to push him way up, like maybe scoot him into almost a gallop, than offer to let him find his natural canter rythm. When he gets too slow, scoot him up bigtime and coast, coast down to natural . Do keep in mind that you seek his Natural canter speed, but that doesnt' mean he goes so slow that he is dragging his feet and compromising his balance.
When you are trotting and he goes too fast, Dont' brace against his mouth. Slow down YOUR posting rythm, even it means your butt bumps the saddle in all the wrong timing. The horse won't like that but he will eventually slow down to MATCH your posting rythm. YOu fix the rythm, count it out in your head, or out loud.
Do lots of transitions, and don't forget backing the horse up, too.
And, every once in awhile, take a walk break where you ride on the buckle.