Richy, all these people are offering advice on a situation that they know very little about. None of them can possibly understand fully the relationship you have with this guy.
Handing out 3 month warnings is all very well, this method may or may not be suitable for your particular situation, only you will know. I have used similar things in the past to great effect; other times it has been a complete waste of time.
As for not employing friends / family, I agree it can be difficult but don't write it off completely. My best mate has worked for me for over 12 years, he is by far my best earner and he does not take the p. I have employed pretty much all my friends over the years and yes I have lost a couple along the way, but hey who hasn't.
The main problem that I see is that you may have lost the respect of this guy, that being the case you need to address it and right away. I would avoid the 'quiet word' approach because if it goes tits up, even if you were being more than fair towards him he will tell everyone that you weren't. I would have a staff meeting in front of every one and apologise for losing the rag, explain to him why his actions are unacceptable and give him a chance to justify himself, but that's me not you.
It amazes me how some people on here claim to know the right way to do everything, no matter what they say I know one thing for a fact: It is not nearly as easy as they make out. Good luck.