Ben, nlinfit is doing a couple of things that are difficult in your problem. First, it is trying to compute derivatives numerically by perturbing the parameters a bit. Second, it is trying to measure convergence using the change in parameters from one iteration to another. This is hard because you have one parameter of the order of 1e12, and others of the order of 1e-8. A simple way to avoid the problem is to build these scale factors into your model, and make sure the parameters being estimated are of comparable magnitude. The following shows how to do this on either the original or log scale.