Hi PM and welcome.
It does sound like your son is trying. And for him to be off heroin for 5 years is nothing short of a miracle .
You said he would not be able to go to college if he were on his own. I think him living with you while he goes to school is an important investment in his future...AS LONG as he is serious about going. It sounds like he is recognizing his weaknesses, ie. changing his major to something more realistically attainable. But I do agree with the others in that you need an agreement with him regarding helping with expences, however little. And chores like yard work or some of the housework. AND you have to take care of yourself. Even though you have limited time off, do something to get out of the house. Join a 24 hour gym, go see a movie. Go shopping. Just because he is there doesn't mean he has the be the center of your attention. It will be better for you both if you have your own interests, your own life. Also sometimes I think when our kids see us strong and doing well it can help them to try to do the same thing. I know it was that way for my son and I.
I know I am just reiterating what everyone else has said but I wanted you to know I am here for you, too. Please keep coming back. I am new here too and the support and wisdom here is phenomenal. You will be in my thoughts and prayers.