I probably not the best person for advice about this type of behaviour in dogs because i have never experienced it, you need to make your mark as the pack leader as soon as you get your dog, when i got my dog i started straight away. i pretend to eat her food before i give it to her (pack leaders always eat first) i walk through doors first ect ect.
When your dog gets aggresive have you tried leaving the room and giving your dog time out, normally people would put the dog in a other room but obviously you should not pick up a dog thats growling at you so i would try saying no in a stern voice and then just walk out the room he will eventually get the message.
good luck