I don't really know what to say. I can understand your reasons for not wanting him to work the position knowing what you know now, but at the same token you really screwed him over. As the boss, you have the responsibility to research the competence of your prospective employees before you hire them. In this case it's doubly puzzling since you were already his supervisor and have experience watching him perform in the very job you hired him for.
Also, citing a lack of competence as a reason to fire him and simultaneously offering to write him a letter of recommendation really makes your position look weak.
I don't know what the labor laws are in your particular state, but there are some states where what you did wouldn't fly and some where it would.