Remember the 3 D's Distance Duration and Distraction. They all work together, and it helps when you try diagnose what's happening.
If you ask him to do a thing too long, and he consistently fails, lower your expectations. He needs to develop the "duration" angle.
If you ask him to do a thing too close to a Distraction, he won't be able to focus. Take him a Distance away from the Distraction, and ask him to do it again. The barometer for how far is the dog. He will focus on the Distraction but as you increase Distance, his head will swivel back around. That's where you stop and ask him for the behavior again.
On the leash - another barometer: as long as the leash is tight, they are not giving you their attention. This means you take them somewhere with fewer distractions, until you are the most exciting thing on the horizon. Once they give you that attention, the leash will be loose. Start your walk with the leash loose and held firmly against your body giving the dog about 4' of line. As soon as the leash goes tight, make the "eh" barky sound and stop. Bring him back and sit beside you, let the leash loose. Slack. Start out "lets go", and if he sticks by you, praise. If he jumps out to the front and pulls, make the "eh" barky sound and stop. Bring him back and sit beside you, let the leash loose. Slack. Start out again. Start with low expectations. If you get 3 steps with him right beside you, stop, ask him to sit, and say "ALL DONE" or "FREEDOG" and let him sniff and play for a moment or two. Work up to more steps slowly. Repeat for only about 15 minutes. If you can do this twice a day, you'll get there faster. If he makes the association of
dog to self: *start with slack leash, when leash goes tight, I have to go back and start again. Start with slack leash and make sure leash stays slack, we keep going. Keeping going gets me closer to things I want to check out, so if I don't pull, I get closer to what I want* The reward is moving forward. Dogs repeat what's rewarding, so if pulling always works, they always pull. When pulling doesn't work, they resort to doing what does, which is not pulliing.
When we bicycle, it's all good, Cody's running right beside me. Walking up the hill, he tries to forge ahead. I roll the bike into him. He jumps back. He walks nicely without pulling. Forgets. Forges ahead. I roll the bike across his path. Over and over. Eventually he walks longer and longer distances without forging ahead. I praise and praise and correct and correct. Even the trainer has to live with it!
It takes patience and persistance. They learn that if you ask them over and over you get frustrated and give up. Taking 15 minutes a day with a planned strategy will help you reinforce what
you want to work! You will still have to deal with life-situations so this isn't an easy button, but it's a method of time-release delivery that the dog eventually understands.