It sounds like you are reaching for answers not to. If he's not an A player, get rid of him. There's always someone around to do his job.
Having the right people means your problems will start to take care of themselves.
Edit: That's not to say that you shouldn't be sensitive for family issues. However, an A player wouldn't just "take off" for even the most serious family issues. He would try and do something to make up for his absence, or at least discuss the matter with you and be genuinely sorry for missing work.