Well… I was to assign the model parameters of three pre-trained models (model_new) to a modulelist (MyModel), I tried your code and there are all matched and equal… May be I should give more codes and reproduce the errors, thanks!
class MyModel(nn.Module):
    def __init__(self):
        super().__init__()
        self.fc1 = nn.Linear(10, 10)
        self.my_modules = nn.ModuleList([
            nn.Linear(11, 11),
            nn.Linear(11, 11),
            nn.Linear(11, 11)
        ])

# setup    
model = MyModel()
sd = model.state_dict()

sd_new = {}
for i in range(3):
    set_seed(i)
    model_new = nn.Linear(11,11)
    for k,v in model_new.state_dict().items():
        sd_new['my_modules.' + str(i) + '.' + k] = v

# update the dict
sd.update(sd_new)
#load the updated dict
model.load_state_dict(sd)

# # if the papameters are assigned correctly?
print(torch.all(torch.eq(model.state_dict()['my_modules.0.weight'],sd['my_modules.0.weight'])))
print(torch.all(torch.eq(model.state_dict()['my_modules.1.weight'],sd['my_modules.1.weight'])))
print(torch.all(torch.eq(model.state_dict()['my_modules.2.weight'],sd['my_modules.2.weight'])))