I honestly don't have any advice, because I think what you are trying to do is the right thing. But I may have some encouraging words. I have a 12 yr old son. When he reached the age of about 2, he got a horrible attitude! He was going through his terrible 2's and it was horrible! I was pretty much raising him on my own at that point (his dad and I split shortly before that and didn't see him much). It was the hardest time of my life and actually made me say I never wanted any more kids. BUT.....I got through it, and I also received a very loving and extremely smart (straight A) child! I did what you are doing now. I dealt with it the best I could and tried to give him ways to vent his anger better.
I now not only have this wonderful 12 yr old, but I also have a 20 month old daughter.
So keep up the good work and try to keep sane! It's not always easy but you will get through it.