I think it is really a question of a) would it be legal to fire him and b) would it be a larger negative impact to the company to have him there or not. That's really a decision only you can make.
As long as it is legal to fire him, I'd say separate yourself from the personal issue as much as you can while trying to evaluate the overall impact of the situation. Part of that evaluation is taking a meaningful look at how it has impacted your working relationship, but also looking at what it would cost the company to lose him vs the problems the interpersonal trouble would cause. Only you can really be the judge of that equation.
Another thought is that if there is someone else you trust in your company that is familiar with this individual, it might be worth talking to them as an independent third party about what they feel the impact is on the workplace. They may have a better perspective on the real workplace issues that are being seen due to the personal issues.
One last additional thought, the best option may not be to keep him or to fire him, but rather if you feel that he hasn't done anything professionally that merits his firing, you could ask him to leave due to the trouble it is causing you, give him time to find a position and even possibly give him a recommendation based on his professional merits to help get him out the door. If you are able to make it a goal you are both working towards, it will likely ensure the best outcome for your company overall.