What you are modeling appears to be a service-oriented architecture. Are you able to upgrade from R2021b? In R2022a, we introduced client-server ports that can be used to make function calls between components. Your "variants" would then be encapsulated functions that you would call out to conditionally. You can do this using If Action subsystems, example attached.
Using the interface editor, you can design your service interface and function calls:
In the example, the delegator calls the correct function depending on the logic you define and merges the outputs
The Estimation server has two functions that you can then populate with your logic. This model is an export-function style model which means it only runs when called (needs to be integrated with an external scheduler such as Stateflow) because of the root-level client/server ports but the other models can be rate based. You can also split up the Estimator into separate blocks with their own client-server ports, I chose to just use one for simplicity but depending on the complexity of your implementation, you may wish to model the choices as separate components. Alternatively, you can use subsystem reference in the estimation server to divide it out at the implementation layer instead.
Here are some additional resources:
If Action Subsystems
YouTube Livestream on Software Architecture modeling in System Composer
MathWorks Software Architecture Solutions Page
Josh