Why does homelessness occur and why is it so difficult to find and apply lasting solutions? In a nutshell: Entropy. This is not a rhetorical affectation but as an authentic explanatory and causal explanation.
Many socioeconomic problems are complex but within a relatively limited problem “dimensionality” – consider crowd control or public transport. They are simpler in underlying symmetries and dynamic variables than is homelessness, and while they are rarely (if ever) comprehensively resolved in any stunningly efficient or cost-effective way, they are in many ways more straightforward, less complec and are effectively dealt with by relatively linear, procedural solutions.
High-dimensionality, complex-variable systemic problems such as homelessness feature at least as many degrees of freedom as the number of variables and abstract logical relationships or feedback loops they possess.
Asserting and implementing solutions is perhaps always only ever temporary because every recombinatory component and additional organisational tool, artefact and abstract relationship also introduces additional degrees of freedom in the dimensionality of the problem. The more concrete and abstract components that constitute a system, the more rapidly that system devolves into the disordered states which far outnumber (by many orders of magnitude) the ordered ones.
There are of course also complex feedback loops and autonomously emergent elements of sociological homeostasis at work in the self-propagation of organisational, economic and psychological information and energy patterns which tend to reproduce and cultivate the potential for, and continuing contextual tenure of, intractable “wicked” problems.
Note: This would make a great topic for a PhD thesis with a view to positively informing social policy.