First of all, I don't have any children myself, so I don't have a great deal of experience with dealing with dogs and kids in the same household, so my suggestions may not be "workable", you have to be the judge of that. I've read up quite a lot on dog behavior and "psychology", because of my younger "problem" dog. I'll just try to figure out what may be going on here. It seems the dog is a little shy like you said, of a nervous temperament so to speak, and I suspect it might be that your daughter scares the puppy with sudden movements or something we have no way of figuring out (a small thing the pup sees but isn't apparent to us) if she's okay with other children. The situation you described; the puppy approaches from behind, when daughter turns around suddenly, withdraws, seems like a perfect example that the puppy is a little intimidated by your daughter for some reason, she seems safe from behind, but the sudden movement and face-to-face contact is too much for the puppy. Of course without seeing the puppy, it is impossible to tell for sure, but I suspect this might be the case. Snapping when frightened is just another method for dogs- if the scary thing doesn't go away, snapping may help, and of course if they're startled, they may not realize what they're doing. And naturally, dogs, like cats, don't have morals as we do, they don't see biting as "wrong", it's something we have to teach them not to do, and I'm sure you've started teaching her this. On the other hand, if this is just puppy biting, which all dogs do, with my dogs saying "ouch" in a squeky voice worked beautifully, sort of trying to react like their mom would if the pup bit too hard. I'd guess your puppy will be teething pretty soon, and that is a time they feel the need to bite on things more, including humans, especially if plenty of other things aren't available.
To make it easier for the pup to realize your daughter is not a threat, you might want to try giving the pup treats whenever your daughter is around, and especially in situations the dog has snapped in the past. And of course if your daughter could avoid sudden movements or raising her voice when the puppy is around for a while, that would help. I'm sure the pup will come around with time anyway and realize your daughter is not a threat, but it will take a while, I think. Puppies can be quite rough before taught otherwise, so it may not be a good idea to have your daughter giving the pup the treats at first. People taking away things from them is something every puppy needs to be taught, IMO, and the easiest way to do it is by trading. If you want what the pup has, get a treat, and offer it as exchange for whatever the pup has, start using a cue such as 'give' when you do this. This way they realize giving things to humans is a good thing and come to you for it since she profits from it, but if you just take whatever the pup has and give nothing in return, it may be that at some point the dog decides s/he isn't giving it away, since it doesn't "pay off" (this particular rotten thing I found off the road is too wonderful to just let them take it) and at the least you may end up chasing the dog to get whatever it is they have. It really depends on the dog's personality, some may never question this anyway. Until the dog is reliable with 'give', I wouldn't have children take anything away from a pup, it is natural behavior for a dog to guard his possessions, even from those higher up in the pack. It may also be the pup thinks of your daughter more as her equal, so she exhibits behaviors with her she might with her littermates (ie play biting, guarding objects etc).
About the "accidents" inside, well, the puppy is still extremely young, isn't physically capable of "holding it" yet, so accidents will happen. Have you taken the pup out as often as you did earlier (ie at least after she has been sleeping, eating and playing, and in between too)? And of course praised her when she goes outside? Has she been peeing more often lately? Or drinking more? The diarhhea may contribute to the problem, and of course changes in the household can affect house training, too.
The herding thing was a good point, I've heard that this is a common problem with dogs of the herding group, that they tend to herd children, often by snapping on their ankles and legs. Children often react to dogs in ways that encourage them to play (in their view), like when the dog jumps, children may raise their hands, and dogs go after the hands when they do this, for example. It's not the children's fault, of course, I'm not saying that at all, but it's also the natural thing for the dog to do, so children can be explained how dogs behave, and dogs taught how to behave around children, by rewarding them when they are doing right.
Take my suggestions as just that, suggestions, and think about whether they would work in your situation. You're the one that knows your children and the puppy best anyway, there are no solutions that work for everyone anyway, as you know. None of my suggestions should do any harm though, at worst they may not help. Rewarding dogs for good behaviors is always the easiest way to go, since punishment is often difficult to time right, and hard for the dog to connect to the exact behavior you mean, often they don't understand what it is they are being punished for and just connect the 'bad thing' with the overall situation, and this is of course what you don't want the pup to be doing in connection to your daughter. Also, the word 'no' has to be taught like any other command, pups have no way of knowing what it means until they have been taught, and often dogs acting as if they're ashamed or sorry is just them reacting to your tone of voice or body language. Sorry if I've gone on about things that are familiar to you already, and I hope some of this may help to at least understand your pup more, others speak up if you disagree with what I've said.