One of the problems is that homelessness is a flow problem, not a stock one. If there are X homeless people in a year, then next year something like 50% * X will be newly homeless. So you could house everybody currently homeless, but you’d be back to square one shortly.
Nevertheless, the current strategy does not seem particularly effective.