I have been using NonlinearModelFit to determine the parameters of a model which is sensitive to its parameters. I have begun the process by determining manually, using manipulate, what is really a very good guess for the values. These are input as the intial values for the fit, and constraints are used to further limit the range of values.
I use Monitor and StepMonitor to follow the solution process. At each step the sum of the residuals squared is calculated, and the parameter values together with that error value is printed, along with a plot superimposing the function using the current parameters with a ListPlot of the data.
What i find is that NonlinearModelFit behaves like a blind dog in a butcher shop. The first step takes it to a function far removed from the good fit I gave it as a start, with the error value much larger than that of the starting condition. At best, it gets back to an as-good fit in perhaps 10 iterations, and eventually improves on it. At worst, it wanders off into distant lands, never to return.
I work also with another program which uses fitting algorithms doing converging iterations for FEA. That tool has extensive user defined parameters for controlling the stepping process. You can tell it the problem is extremely nonlinear and it will be conservative. You can control the initial step sizes for parameters, the maximum step sizes, the step growth and recovery rates. And every step it takes is one which reduces the error.
Are there any similar controls for Mathematica's fitting algorithms?
(I realize it might be better to offer the notebook for examination, but the work may well be proprietary, and not mine to offer.)