Should i stay or should i go

Ok so I'm not sure if i should stay at my job and tough it out, ask to be demoted, try to transfer again, or find a different job completely... So i work at a specialty retail store that is very small ive worked there since april of 2014 and i just recently transferred to a different store in February because i got a promotion as part of the management team. My boss has told me on several occasions that I shouldn't be in the the position because of "mistakes" i have made, however, he among his managers have told me how greatful they are that I transferred because they needed me so bad and didnt have to hire and train someone new and that ive made a tremendous impact on sales. My boss made a huge scene in the store when i tried talking to him about taking a day off for my little sisters graduation that was in a couple of weeks (i asked for this day off 6 weeks ahead of time) he told me to work it out with the assistant store manager and she came up with the idea to come in when i needed to leave and i would just text her with updates. My manager screamed at me, slammed the office door in the assistant managers face and said i would work that day because he said so. He ended up talking to me and let me have 2 hours to go see her graduate...but i didnt get to see her graduate because it took me 30 min to get there from work 15 min to park and walk in which left me about 35 min to watch speeches, recognition and about 100 kids graduate that werent my sister and i had to leave to be back at work so i didnt lose my job. What should i do?