Я подозреваю, что проблема из-за того, что у каждого типа плательщика свои уникальные свойства. И изменяя тип плательщика, может нужно как-нибудь заново загрузить соответствующие ему объекты propertyCollection?
$orderPropValue = $propertyCollection->getItemByOrderPropertyId($propId);
if ( is_object($orderPropValue) )
{
$orderPropValue->setValue($propVal);
}
Попробуйте на странице поставить чтобы компонент голосовал против композита.