Maybe when the fighting starts you can try to remove yourself from the situation when it's possible. People often say hateful things that they don't really feel or mean when they get into that kind of angry state, but I know that it still hurts when people take their anger out on you even if it's just because they are feeling really sh*tty themselves...
I have a niece that is almost the same age but I don't get to see her very often since she lives pretty far from me. I don't mean to make light of your situation because it sounds pretty tough, but that is such a cute age and I wish I got to see my niece often like that
I don't know if I have a lot of great advice or anything like that but you can PM me if you ever just need someone to talk to or vent to or whatever... take care