oh your situation sounds like mine! my 4yo daughter's mood changes at the drop of a hat. she'll seem genuinely upset about something but then see something exciting and all of a sudden she's a happy child.
i can't say i have any great advice for you but i thought i'd give you some of my trials so we can be miserable together :P i hope you get some good advice that i can use too!
my daughter tells me we're driving the wrong way and if i tell her it's the right way, she starts getting upset. so i just say 'hmmm, let's see where we end up' and for some reason that works.
also, if she says that the sky is red, there is no arguing otherwise, otherwise she gets irate. it's easier to just agree with her.
she is a bear to get to go places that she doesn't want to go. lately that has been school. as soon as we start getting dressed, she pipes up with 'i don't want to go to school!!!' i tell her once that she's going to school but i don't discuss it or she just gets more upset. there have been 3 instances where i have had to drag her kicking and screaming to school where we sit outside until she's ready to go in. i did have a lightbulb moment recently. she had meltdowns on those days where she had cereal for breakfast rather than eggs so now i make sure she eats eggs in the morning.
her teacher also suggested working on transitioning however it doesn't seem to help any. if she doesn't want to go, she doesn't want to go and she's going to be upset about it.
giving her 2 choices for clothes does not help. she just says 'not that one and not that one' and continues to take forever to make her choices. sometimes i can speed her up and others not. it's a crapshoot. (i did take her to school in jammies once but brought clothes for her to change into when she calmed down.)
when she is denied something she wants, she gets in a bad mood and is upset/grumpy about everything until she gets distracted by something else. when she remembers, she's upset all over again.
time outs are really tiring. firstly, she won't stay in time out right away until she's good and worked up. she does stay eventually tho i have to put her back a lot. we are both stubborn but she stays there until i get her apology and she's ready to do as i asked. i have also tried the 'sitting in the lap' timeout but that only seemed to make her angrier.
i don't have any advice to make things easier but i would suggest not caving in right now. figure out how to stand your ground now so it won't be so hard when they're teenagers. soooo not looking forward to my girl teenage drama! good luck to you!