I think you should look further into how the nn.Sequential model works. From my understanding it is used when you want a series of layers to always execute after one another, but it has to be put into the sequential in that order. Honestly, I think your first code was fine. Why did you want to put it into sequential in the first place?
Example of sequential, but without the dropout (which you should probably not use if you use batchnorm)
self.decode = nn.Sequential(OrderedDict([
            ('conv1',nn.ConvTranspose1d(32, 32, 8, 2, padding=3)),
            ('bn1',nn.BatchNorm1d(32)),
            ('conv2',nn.ConvTranspose1d(32, 32, 8, 2, padding=3)),
            ('bn2',nn.BatchNorm1d(32)),
            ...
        ]))