По коду не понятно, где у тебя хуки, но общая система должна быть примерно такая:
Внутри Form
. . useState с дефолтными данными данными из пропса
. . useState со списком полей и их настройками, с дефолтными данными данными из пропса
. . fields.filter(f => f.active).map(f => < Field type data setField settings />)
Внутри Field
. . useState с текущим данным
. . useState с ошибкой
. . функция onChange с валидацией, которая либо сохраняет правильное значение и кастует setField, либо вызывает ошибку
. . конкретный инпут в зависимости от настроек
таким образом ты и поля можешь менять в зависимости от значений других полей, и валидируется каждый внутри себя