The most effective policy for fixing homeless is, surprise, giving people places to live.
It's hard for people to address any other problems in their life unless they have a roof over their head, if for no other reason that the homeless are chronically severely under-slept.