Thanks for the experiments.
It still looks like the running estimates are off.
Are you shifting or scaling the data in your augmentation pipeline somehow?
Usually you see bad running estimates, if the training data comes from another domain or was preprocessed in another way (e.g. normalized during training, raw data during validation).
I would consider setting track_running_stats=False not the best workaround, as one might argue you are leaking information from the test set as well as you might be dependent on the batch size (the bigger the batch during testing, the better the estimate).