I am absolutely the last person in a position to judge. My boys are not always the best behaved in their class, and I've had to come to terms with the fact that they get some of their bad habits from me. (I get frustrated easily and raise my voice, for one.)
One thing I noticed is that you said she cries and throws fits and you feel like you are always arguing with her. It's time to give yourself permission to tell her what she needs to do and refuse to discuss it with her. If it's time to turn off the tv, say, "It's time to turn off the tv." If she tries to argue with you, just repeat the direction, "It's time to turn off the tv." If she tries again, let her know the consequence for not turning off the tv. If she tries yet again, it's time for the consequence.
Sometimes it really is ok to respond with, "Because I said so." It's really not an excuse, and it really is ok to let kids know that you are in charge and they do need to do what you say. There are times when you can explain or discuss or even compromise. But there will be times when she is just trying to delay or even talk you out of something and you might need to say, "Because I said so." And she does need to know that certain things need to happen because Mommy is in charge.
One of the hardest things for me is that their needs change. Half the time I really don't know if my expectations are age appropriate. Sometimes I expect too much, and sometimes I don't expect enough. You just have to keep trying and be willing to step back and re access.
Just remember that we are all just doing the best we can, and it's ok to make mistakes as long as we keep trying to do better.