То есть ты тупо в SuspiciousMerchantInstance скопировал содержимое ClanSiegeInfo? :D
Странно, что оно еще компилируется. Видать не то скинул все же.
Но в любом случае, если хочешь такую штучку провернуть, не лучше ли оставить один конструктор с аргументом Residence и в нем поставить проверки...