Is this woman in the room when you are teaching, along with the other moms? Is that where the pushy behavior and insults are coming from? If so, I'd put a stop to that instantly. The kids need to concentrate on the teacher and not on any bystanders. Don't make it personal about this one mom - make it about the moms having an hour to do their own thing and letting the kids make mistakes/learn routines without distraction. They don't sit in the 3rd grade classroom either. If they are watching these classes, then they are over-involved. I'm not sure where the policy came from of allowing people in the room TALKING but it's ridiculous.
As for play dates, let the mom know she's not invited. You have things to do and you cannot entertain her, and it's up to the girls to play. They are NINE! If you don't want your child over there, that's probably a good decision - you don't need your child hearing all that criticism. Try something like the movies - there's no talking allowed. If the mom attends and talks, you will have to get up and move to a new seat and tell her she's annoying you and the other viewers.
Otherwise, you may have to say something direct - "We love your child but are uncomfortable around all your criticism and complaints, and we don't want our child to be part of that drama. If you aren't comfortable enough with us to allow your child in our home or if you feel the need to complain constantly so that it's no fun for everyone, then, sadly, we will have to curtail these dates." I know you feel badly for the girl, but you cannot intervene or salvage things more than that. The kids can play at school and in dance class, and that's it.