Ah OK, thanks for the explanation.
In that case, could you run an additional experiment by removing all dropout and batchnorm layers from the model (replace them with nn.Identity), call model.train(), and retrain the model?
This should be the same run as using model.eval() during training and I would thus expect to see approx. the same training behavior (assuming it’s stable).