Сценарии - самое то для этой цели. В форме можно делать условные комменты, вроде:
if ($model->scenario == $model::SCENARIO_FYSICAL){}
Либо создать несколько филд-сетов в разных файлах, и инклюдить их так же по условию.
Либо же, пользуясь теми же сценариями, рендерить разные формы в контроллере.