Hello Thomas,
I guess part of the problem is that your data are very well described by a single gaussian and therefore the fit may end up in different local minima. One way to steer which part of the data are well approximated by the model function is to set start values for the parameters to be fitted. I prefer to use NonlinearModelFit
nlm = NonlinearModelFit[data,
A 1/(\[Sigma] Sqrt[2. \[Pi]])
Exp[-(1./2.) ((x - \[Mu])/\[Sigma])^2], {{\[Sigma], 100.}, {\[Mu],
2000}, {A, 200}}, x]
To visually compare data and fitted model you use
Show[ListPlot[data, PlotStyle -> Red, PlotRange -> All],
Plot[nlm[x], {x, 0, 2000}, PlotRange -> All]]
Regards,
Michael