Hi L.,
First of all stop feeling frustrated - this has nothing to do with you or 'bad' parenting.
Second - you use the phrase "But he doesn't do anything to be mean on purpose". If you look at what he is doing..... he ABSOLUTELY may be doing these things on purpose. It's called acting out. But he isn't doing them because he's bad. He's not bad at all. He sounds really frustrated. and he isn't doing them because YOU are bad. You aren't bad. But you sound really frustrated too. And when you're both frustrated that's.... well, frustrating!!!!
It seems from your posts (I read your post on potty training) that you have yourself what the 'experts' like to call a 'strong willed' kid. Which means he wants things the way he wants them when he wants them that way? And it seems like you might escalate things by trying HARDER to corral him in a certain way? That's understandable, because you want the behavior to STOP quickly.... but if you don't replace the bad behavior with what you WANT him to do.... he doesn't understand.
Instead of punishing him..... have you told him what he CAN do? Have you validated his feelings of frustration? For example - he lost recess because he didn't finish his work. How did that conversation go? Does it help when you say things like "Mr Teacher told me that you got really upset about not going outside? wow - that must have been really frustrating. You love going to recess. recess is really fun isn't it? It's sad to miss recess when we don't get our work done.... etc etc etc."?
I'll bet he had a meltdown because he felt like nobody (teacher etc) cared that he was upset. That's typically why something escalates. Things get BIGGER when we don't feel heard.
Then - once he feels heard..... give him a solution. "School is for work. How could you have gotten your work done so that you can go outside?" Coach him until he can say - stop drawing or talking or wasting time and do the task.
As far as hitting the girl...... what was his other option? Does he have a "tool box" of behaviors that are safe for him to do when he gets really mad at someone? Teach him to take 3 deep breaths, count to 10, touch all his fingers to his thumb in order etc etc etc.... whatever it takes for him to engage himself in an acceptable behavior when he's mad and not "meltdown".
Also - your timeframe is kinda tight. You said you are feeling really frustrated because you aren't seeing any progress in his behavior. It's only been 3 weeks. And it's escalating because if he doesn't have the tools of what to do when he's angry then he just does more of what he feels like gets him heard.
He's also dealing with being a big brother. has that been frustrating? It sounds like the last couple of years has been frustrating just with potty training? If you know how frustrated YOU are..... imagine how frustrated a 5 year old is!!!!!!!!!!! It sounds like he could use some good old fashioned MOMMY LOVE! Start doing things with him where he can't possibly get into trouble. so that the 2 of you have a great time together and have fun and you can feel LESS frustrated with him in general overall. He will start to feel less frustrated with himself if he knows you aren't frustrated with him.
Good luck.