I have had similar situations, where I believe the problem has been that the Laplace approximation is inaccurate in some part of the (outer) parameter space, and the optimizer gets attracted to this area due to error in the likelihood approximation. This can be really hard (and time consuming) to diagnose. My attempt has been to fix one parameter at the time, and see if the problems go away. This would indicate which part of the model is causing the problem, but it is not solving the problem.
When you say “non-Gaussian state space model” I believe that the prior distribution for each latent variable (random effect) is Gaussian, still. Otherwise that is a candidate for the culprit.
obj <- MakeADFun(..., ridge.correct=TRUE)