I also agree you may need to bring in an unbiased, objective third party to address the issue. Whether it is a guidance counselor, a therapist, a priest, that is up to you.
He may be a very sweet boy. No one is questioning that. But, I wish I could tell you how many times parents talk about their kids (almost always a he) about getting DUI underage, getting in fights at school, getting detention for talking back to the teacher, get caught vandalizing someone's house, etc etc, and they look at me, very honestly, and say, "I just don't know what to do; he's really IS a good kid." I hear it ALL the time.
So, when you are punishing your child, you can't be thinking of how good he is most of the time. You have to be thinking about how he is behaving in that moment. And, in that moment, he is NOT a sweet, loving kid. He is being a not so good (maybe even Bad) kid.
By acknowledging this, you are not saying your child is a monster. He very well may be a sweet child. And, he will likely grow up to be a decent, productive adult. But, teen years are around the corner. This is the dress rehearsal for what will be even worse behavior as a teenager. I have just seen so many parents give up. They don't establish good discipline practices in the beginning, and then when the big stuff starts happening, they are not able to adequately deal with their adolescent. The kid laughs when they try to punish them. Or, it can get combative. And, as sad as it is, the parents just give up.
I think you are an excellent parent, and I think you will ultimately be able to do the right thing for your child. Good luck!