Totally agree! If you can transform your problem into another problem with robust solution methods, you should. However, it’s still not clear to me what OP actually wants to solve once he turns to his “advanced model”. In the end, there are only so many tricks and transformations you can do, and you might have to turn to local, general purpose nonlinear solvers in the end.
The reason why I took the bait on least squares solving was that that was used in the reference code, so I thought it might be a non-linear least squares problem they actually wanted to solve, but it appears that the previous choice to use scipy’s minpack wrapper was simply that you can in principle solve the system of equations by minimizing a sum of squares (and hoping that you are actually able to find a zero-residual solution).