Я бы попробовал использовать паттерн Factory.
Фабрика будет создавать форму для конкретного типа документа, в ней не должно быть дублирования кода.
Список полей и правила их валидации для каждого типа договоров хранить в конфигурационных файлах concrete-document-type.php:
<?php
return [
'elements' => [
'name',
'surname',
'phone' => [
'validators' => ['by']
],
...
],
...
];
Структуру привёл условную. Фабрика должна уметь по требуемому типу договора получить нужный конфигурационный файл и по нему построить нужную форму договора.
У вас получится 70 конфигурационных файлов. Дальше можно думать, как их максимально упростить. Например, у вас есть PhoneElement формы, использующий PhoneValidator, вы создаёте его наследника PhoneByElement с валидатором беларусского номера телефона. И конфигурационный файл превращается в:
<?php
return [
'elements' => [
'name',
'surname',
'phone_by',
...
],
...
];
Или добавляете понятие локали в конфигурационный файл:
<?php
return [
'country' => 'by',
'elements' => [
'name',
'surname',
'phone',
...
],
...
];