I think one of the first things you need to do is stop the yelling. When we yell at our kids, they get deffensive and the bad behavoir increases. Next, and this may seem a little harsh but you need to remove every privilage she has this includes, TV, Computer, Video Games, Going out with Friends, etc. Then you need to sit down with her and discuss what the rules in your home are (in a calm voice, if you start to get upset, excuse yourself for a few minutes to calm down then come back to it), then write these rules down so she understands them. The next step is establishing what her goals are e.g. doing better in school, being more curtious, etc. Then create a "Good Kid Chart", you can make it any way you want. With my step-daughter we did a star system, when she did what she needed to do, she got a star, and extra stars for over and above behavior. Then we established a reward system for the stars, as a number of stars could be cashed in for, 30 min TV time, Ice Cream Trip, Go to the Movies. When your daughter acts up, instead of getting upset, calmly say, "I do not appreciate the way you are speaking to me, go to your room for the next 10 minutes". When ten minutes are up go and explain to her that when you do not give respect you are not respected and her behavior will not be tollerated. When her grades and behavior improves then you can start gradually giving back privilages. Though I would still limit the TV time on school nights, in our house there is no TV allowed Mon through Thurs night and no fun time until homework is done and instruments are practiced.
Hope this helps.