Could you post your model architecture so that we could have a look?
The mentioned approach sounds simpler and if you would just like to load the same parameters and buffers, this dummy code shows how to do so using submodules:
class MyModel(nn.Module):
    def __init__(self, moduleA, moduleB, moduleC):
        super(MyModel, self).__init__()
        self.moduleA = moduleA
        self.moduleB = moduleB
        self.moduleC = moduleC
        
    def forward(self, x):
        #...
        return x

moduleA = models.resnet18()
moduleB = models.resnet18()
moduleC = models.resnet18()

moduleB.load_state_dict(moduleA.state_dict())
moduleC.load_state_dict(moduleA.state_dict())

model = MyModel(moduleA, moduleB, moduleC)

However, your use case seems to be more complicated, so we would need some more information.