I would have the friends and visitors scream "ow" really loud every time he nips near them. This let's him know that it hurts and is not OK.
Totally agree, and not just friends you, too... When you are playing with him if he nips you say loudly owwwwwch in a hurt voice, not an excited one (which u normally do when a dog nips, ya, lol)
I would try and train in in the yard.. block him from what he is looking at or chasing. Otherwise this is a behaviour which rewards itself.

Then it gets tougher and tougher to redirect it ...
I would not let him run around in the yard without supervision until you have a better recall... SO I would block when he starts barking, put him on leash walk the other way, just to get him out of that situation first. There is no training when he is already in that mode, lol.
Redirect him with a ball or a toy more often so he learns to pay more attention to you cuz you are going to be SO much more fun than a stranger walking by

He can still alert, but when you call him off he comes a-running, waiting for his play/reward/treat time with you! It worked for me, Toffee is a truck chaser and definitely a barker at people, but now I can have him off leash and I don't have a fence and live in a quiet city street...