I also think it's a puppy trying to learn & test boundaries - and she's mirroring your techniques... if you get angry and loud and physical with her... she's going to try that method back again with you - which is the opposite of what you want.
Try to redirect her to what you WANT her to do, instead of just punishing the bad behavior.
For example, when she didn't want to come in from the garden... leave her there and then head for the door in an excited manner (without saying her name)... I bet 99% that she would come running after you - when she's well on her way toward you, and maybe just 2 or 3 feet away, you can say "come! good come!" - then you can praise her for doing what you wanted. Sneaky, huh?
And, for nipping at the hands, put a toy in her mouth so she chews on that and not you... then you can reward her with a little tug-play with the toy. We would "yipe" or say "eh-eh" when Denna would grab for us, then pick up a toy, get her to grab it, then "yes!" - "good!". She knows when she gets mouthy, she needs to "go get a toy" for play to continue. I can understand 'biting back' if she ever grabbed a child's hand too hard, an adult dog would absolutely use that method when a puppy gets out of hand, and time it to make sure the context was understood... we'd call that 'an object lesson' around here - but hopefully you can head it off before that's needed.
Be firm, calm and patient with her. Don't let her get away with growling and nipping, but she'll stop it faster if you don't growl back at her (i.e. "tell her off")... I know what my Dad would consider "telling off"... and it doesn't work near as well with a persistent mastiff puppy as it did with us kids.