Hi Emma,
You see to be approaching it in the right way :) The idea is to think of bar open/bar closed, so that on the appearance/approach/passing of person, the dog gets what it really loves most - usually this is extra tasty food (liver, chicken, etc that it would not normally get, or sometimes a game) and as the person has passed, the bar "closes" and there is no more of that nice stuff until the next time :)
You can take opportunties as you are doing, for example when chatting to someone; every now and then feed the dog (but don't let anyone touch) If the puppy attempts to make contact, I'd suggest allowing something
very brief with NO eye contact to start... watch puppy's body language at all times. In time you should find there is more confidence and so you can then start to allow a tiny bit of eye contact, etc and so on in tiny steps (tis all in the book ;) ).
You can also use this "bar open/closed" for dogs. Also, I'd suggest finding some more good, reward based classes to go to (but do have a good chat with the instructor first, make sure they are not going to undo your good work in one fell swoop!!). As well as the APBC people, some of whom may do classes, I'd suggest
http://www.apdt.co.uk/ All their classes should be good, but you can ask to go and watch first if you like :)
I'd suggest fun classes such as trick training, or even something like "good manners". With shepherds, you need to really be actively socialising them for much of their lives, but if you get in some good work in the first couple of years, you will often find they are better at not barking over every little thing, for example.
I hope that's helpful. Good luck!
Lindsay
x