I think creating a new custom model with a new forward method would be the cleanest approach.
Alternatively, you could also use the modules by directly accessing them via:
middle_activation = ...
out = model.middle_layer1(middle_activation)
out = model.middle_layer2(out)
...

but this would basically be equivalent to writing a new custom forward.