model.eval() does not freeze the parameters, but changes the behavior of some modules.
E.g. dropout will be disabled and the running stats in batchnorm layers will be used.
To freeze trainable parameters, you would have to set their .requires_grad attribute to False.
E.g. this would freeze all parameters of Net1 and Net2:
model = MyNetwork(a, b, c, d)
for param in model.Net1.parameters():
    param.requires_grad = False
for param in model.Net2.parameters():
    param.requires_grad = False