No, what actually happened here is you switch from Zygote to ForwardDiff. I think the issue really comes down to:
DataFrame operations use try/catch internally, which seems to break Zygote. You can probably build an MWE that is directly doing loss functions on DataFrames without an ODE solve. That would be nice to isolate and open an issue on Zygote.jl for.
But for this, ForwardDiff is going to be faster anyways, so adtype = Optimization.AutoForwardDiff();
is a better idea, and would fix your issue.