If you don't give FindMinimum starting values for the variables, it uses 1.0 for all of them. Sounds like that's a bad starting point.