In my experience with training dogs ( I train search and rescue k9's) the biggest thing when training a dog is consistency. Dogs want to please us. Shepherds are HIGHLY trainable, and can learn to do almost anything, but they are also HIGHLY Intelligent, which means often times they will decide whether or not to obey. Keep your punishments consistent and loving, and keep your praise high and consistent. If he gets on the counter and you tell him "Off" and he actually gets off, that's improvement and needs to be praised. If you tell him "off" and nothing happens then it's time to punish lovingly. Just keep working with him and he'll get it.
One more tip...if he's left alone in the house, play a radio or tv while away. This makes the dog think you might be back at any time, and gives him a familiar sound while you're away. It helps pacify a puppy who's new to a doghouse or crate also.
Try to remember, a puppy is like an infant. They are curious, playful and even rebellious at times, but if you train them and let them live past age 2, they usually settle down and become cherished members of the family.