In your PyTorch model you are adding the nn.BatchNorm1d layers as b1, b2, b3.
Afterwards it seems you would like to keep the original parameter initialization for these layers and try to filter them out via if "bn" in name. However, since the name is wrong, the batchnorm weights will also be initialized using the nn.init.normal_ operation, which could explain the worse convergence.
I would recommend to use bn1, bn2 etc. as the new names instead of checking if "b" in name, since the latter would also match the bias parameter in other layers.