I assume the problem comes from infantry subclasses in between have scope 0 and somehow confuse the engine.
Sample
SoldierWB: CAManBase
scope = 1;
model = "\ca\characters2\USMC\usmc_soldier";
class US_Soldier_Base_EP1: SoldierWB
scope = 0;
class US_Soldier_EP1: US_Soldier_Base_EP1
scope = 2;
model = "\ca\characters_e\US\US_rifleman";