Hmm, something is odd.
When you pushed the random input into your models in training mode, the BatchNorm layers should update its running_mean and running_var.
Since you used the same input, the updates should be the same in both “base” models, which you made sure with the last test.
The only chance I see is to post the model definitions and debug it.
Could you provide a minimal working example (most likely just the base model will be sufficient)?