My new trainer is helping me with this exact same problem. Here is what she told me
there are three aspects to heeling. Head up, Position and Focus.
Perch Work - You'll want to move counterclockwise. Eventually the dog should move fast enough to catch up to you and will be in the right position. the perch work teaches them back end awareness. You can do other things to work on back end awareness to. Backing, ladders, etc. There are videos of perching on youtube.
Head Up - With your elbow at your side and your arm level, hold a treat just above his nose so he has to tilt his head up. Reward him for one step with his head up, then two, then four, etc.
Focus - Teach him to watch you. As soon as he looks at you, mark and treat.
Work on each aspect alone before putting it all together. I haven't put a word to the actual command yet and won't until she's in the right position.
Also, another problem we had was Jax is a "show me the money dog" and didn't relate the reward to me. So find his highest value treat. Hers is a frisbee. Plotz, Yes! and throw. Plotz (if she doesn't then I say Oops and wait at least 3 seconds before repeating the command), Yes! and throw. Then put the reward down somewhere. If he goes to take it, don't say a word. Just take it away and put it back. and just continue this until he leaves it. Then give the command, mark and then go get the reward to give it to him.
I hope all that made sense. It's getting late.
And just for the record...making eye contact is a challenge to dogs. It's not natural to them. It took Jax quite awhile to be comfortable looking in my face so be patient with him. He'll get it eventually.
And you don't have to be in a 'planned' training session for any of what I'm doing. I can do it once, for 5 minutes or 1/2 hour. Depends on what is in my hand and where we are. If you are teaching them something new, keep the first few sessions to 5 minutes. Heel is fairly intense because it involves so many things to do.