Your debugging path sounds quite good.
Most likely you are using a Python list to store the different heads, which won’t properly register the submodules in the parent module (and thus won’t return the head parameters in model.parameters()).
Could you use an nn.ModuleList as a drop-in replacement and check your code again?