If you have not already done so, I suggest that you consider seeking out some support for yourself. Therapy, with or without self-help groups such as Al-Anon, will help you turn your focus away from your son's problems, and onto your own life.
Unfortunately, you cannot do anything about your adult child's choices. The only person you can control is YOU. Accepting this reality is in my opinion, the only way out of the insanity and chaos our difficult children cause.
Love him. Always love him. But set him free to live his own life, make his own choices and learn from his own mistakes (or not). You will never change him, and trying to do so will only make the situation worse.
Unfortunately, detachment with love is the path we face.
Our families are not normal, Hallmark families. We will not gather under the Christmas tree to celebrate the wonderful, healthy and happy lives our children have built. None of us who are regulars on this board can say that our kids turned out the way we hoped - at least, not without walking through Hell first.
There are many other families like ours, most too frightened and ashamed to admit that all is not perfect. At least we have each other to rely on.
There is hope, but we cannot bank on it. We must accept each day as it is.