I have also been trying for a month to get him to heel
Make sure you're giving him plenty of sniff time too! The mental exercise is just as important (it actually tires dogs out more than the actual walking), and if he knows you will let him sniff later, he's less likely to go crazy trying to pull and smell during the rest of your walk. With my dog, she isn't allowed to sniff for the first half of the walk, but she is on the second half. Other people just tell their dog "ok, go sniff" when its okay for them to smell. Some have no set rule, and just tell their dog "let's go" if they don't want them to sniff that time. You could choose to do something different, it's up to you.
In regards to teaching him to heel,
1. try luring him into the position first. With him in front: lure him just behind you on your left side, then lure him to turn around while still behind you, and walk him up to the heel position. Don't say "heel" until he reaches that position, then say "yes! heel!" (or whatever marker you use) and reward.
2. Just keep doing that, progress to luring him with just your hand and no treat, then just to the hand signal, when he's catching on, say heel before luring him through the motion. When he reaches your left side, reward and say "heel"
3. Eventually, when you say "heel" he will immediately go to your left side. Then, and
only then, can you start to phase in movement.
4. Start with just one step at a time. (and don't worry about the "automatic sit" every time you stop yet) Say "heel", pat your leg (he should already be in position) and walk one step. If he stays at your side, say "Yes! Heel!" (or click and say heel, or say good heel, whatever your marker is.)
5. Gradually progress to more and more steps before rewarding.
6. When he's
pretty much got that down, you can add in turns.
7. Now you can add in the automatic sit.
8. Don't rush the process

Don't try to add in a watch me command, that could be confusing. Watching you should be a natural part of heel, it will come in time. He may even be watching you out of the corner of his eye. As you start to add in turns, and become more unpredictable, he will naturally begin to watch you more. Practicing heel is actually one of my favorite things I do with Z. A practice session might look something like this: to walk for a bit, stop, then spin 3-5 times to my left, then suddenly switch to spinning to the right, then walk backwards, then run forwards, and suddenly stop. At the end, she gets rewarded: often treats and a game of tug.
Generally heel is best taught off leash (in a quiet space like your hallway), and then is progressed to on leash.
In regards to a perfect recall, (I just bought a few books on this for Z

)
1. "slot-machine psychology" Make sure your rewards are high-value and varied. For instance, switch between a couple pieces of chicken or hotdog, or, another time, a game of tug/fetch/wrestle, whatever game your dog likes, a game of find the treats (scatter them in the grass), a game of chase, or maybe (rarely) just a few "boring" regular treats or a belly rub. As he gets better, you can start to phase out the chicken and other rewards like that, but don't rush it. And for the rest of his life always reward, even if it's just an ear scratch or quick game of chase or tug, and sometimes, surprise him with a high-value treat of game. Keep him on a long-line so he can't self reward for ignoring you, at least until recall becomes muscle-memory.
2. If you're calling him off prey, give him a prey-like reward, like a game of chase or fetch, even tug. Food rewards probably won't be too motivating for a dog in "prey-mode".
3. Be careful not to bribe him. Don't show the treat/toy until after he comes.
4. Don't "poison" your cue by using it when you can't enforce it or for bad things.
5. if he comes, even if it took him a while, still praise. If he makes a habit of delaying, when he comes, praise him, but show him the piece of cheese he would have gotten and eat it yourself.
6. Make sure to use the release as a reward, if coming back means leaving the fun place, he'll stop coming back very quickly.
If your dog comes from 20 feet while sniffing your kitchen floor, Don't assume he'll come from even 10 feet while just standing outside. When proofing, start at the very beginning, as if reteaching it from scratch.
Okay, sorry for writing a whole book on this, I can ramble on sometimes.