Your employee might be suffering from a mental health conditon called burnout syndrome.
Without an actual assessment from a psychologist and just your 2nd hand account this is only a speculation from me, but the symptoms like disinterest in work and extended leave for personal reasons seem to be there. The usual reason for this condition also seem to be present: When the stress threshold of a human is overstrained for an extended period of time, and personal stress factors like a terminally ill family member and a long distance relationship further increase the stress level, a burnout is a natural reaction.
When you want to keep the employee, you need to reduce the stress they experience during work to a bearable level. When you are afraid it might hurt morale to just cut some slack for a single team member, you should consider to reduce the stress level in your company as a whole. The employee might be the first with a burnout, but he might not be the last.
You said that working through weekends is common in your company and everyone is "working their asses off". This is not a viable long-term strategy! Various researches have shown that people simply can not work efficiently for more than 40 hours a week. OverstainingOverstraining this stress level results in lack of concentration which reduces the work output and increases the amount of mistakes made. As a result, the weekly output of a worker decreases when you have them work more than 40 hours. It might sound counter-intuitive, but your company might be able to accomplish more by working less.