Maybe you are giving him too much freedom to get into it.
Have you tried holding him together some and asking him to step off?
You have said he is unbalanced and heavy on the front end. Having him run like a crazy man at the trot only makes him more unbalanced and unable to lift his front end to step into the canter.
Pick him up, help him lift his front end, and then ask.
Exactly this. A horse that falls into canter from an unbalanced, on the forehand trot, will immediately have an unbalanced, on the forehand canter. This can scare some horses... imaging the feeling of running uncontrollably downhill. You're legs have to go super fast to keep up with your body to try and not fall over. Same goes for a horse on the forehand. It's leg will go a million miles an hour to try and stay upright.
You need to balance your horse before you canter. Unless you trot is of excellent quality and balance, don't even bother with canter at this point in time. I would be doing a lot of leg yield on circles, down the long side and from 3/4 line - the track to get some more balance established. Multiple walk - halt - walk - trot - walk - halt etc. transitions will hugely help with balance, but make sure you are not allowing the horse to 'fall' into the transition, or they will do nothing to help your cause. Keep your leg on, hold yourself upright, engage your core, stop your body and THEN touch your rein if you need to, for downward transitions. It should feel as though the horses croup sinks behind you, rather than you being thrown forward over the dash in an unbalanced transition.
When I work with horses who are not confident, and are unbalanced in canter, I ask for the transition from a 10m leg yielding circle in a steady, rhythmic trot. So stay on a 20m circle, ride at least 4 transitions per circle. When you feel that the horse is totally on your aids and off the forehand, start to put some 10m circles in, and leg yield out a few steps before continuing with your transitions on a 20m circle. Do this a few times until the 10m circle is balanced, upright with the shoulders staying straight (horse is not allowed to drop shoulders in or out - that is unbalanced), leg yield out, and as you are about to come back to your 20m circle, give your canter aid. The aid must be clear and strong, use your inside hip to 'lift' the horse into canter. Just using legs does nothing to support the horse.
If he runs on, bring him back, go back to transitions, 10m circles and leg yields until he's balanced and steady, then ask again. NEVER accept an unbalanced or resistant transition. A few people will say to push through it, but if the horse is unbalanced, I don't like using scare tactics to force them to run into the canter. Instead, allow them to regain balance and confidence, then ask politely again.