It looks like you are using all conv layers separately on some slices of your features. Is that correct?
Could you post a bit more code, since the current ModuleList seems to work using this small example:
outs = nn.ModuleList([nn.ModuleList([nn.Conv2d(3, 3, 3, 1, 1) for j in range(5)]) for i in range(3)])

x = torch.randn(5, 3, 24, 24)
outputs = []
for i in range(3):
    for j in range(5):
        outputs.append(outs[i][j](x[j:j+1]))

outputs = torch.stack(outputs)
outputs.mean().backward()
print(outs[0][0].weight.grad)

Let me know, if I’m using it in a wrong way.