Copa, your question has more to do with your role in your son's life than with him. I agree with Feeling Sad. Your son is comfortable with his life at the moment. He doesn't care enough to want more for himself. He hasn't yet found his purpose in life and he isn't behaving like an adult. It's my understanding that when he was homeless, he refused to take his antivirals. If you believe that in order for him to stay on them that he needs to live nearby, then that makes sense to keep him close. But that is all you can expect from him.
When he talks about the time he was homeless, does he miss it? Was there a piece of him that liked the freedom of living by his wits day by day? He is using you as an external conscience. He cannot seem to monitor himself, look out for himself, take care of himself, without your motherly input. Are you comfortable in that role or do you want to detach further? It doesn't much matter which you choose, he will still resent you.
The two of you are at loggerheads. He wants to coast along getting high. You want him to assume responsibility for his own life. He isn't able to do that. His actions are showing you his current capabilities. Can you accept that from him? Do you want to continue to be his external brain that he resents? If the situation isn't something you can accept, then it's up to you to change it somehow. You keep asking him to change. He isn't up to the change - whatever the reason. I think from his perspective, he always feels like he is failing you. He cannot reach the goals that you set for him so why bother. I think he views himself as a complete loser.