I would recommend to check, what learn.predict is doing and try to match the behavior in your “manual approach” . I.e. is it normalizing the inputs or processing in some other way?
Also, did you compare the parameters and made sure they are equal after loading the model?