Despite what you might expect, EscortCarrier modules do not replace AssaultCarrier modules in blueprints, despite having the same type:
<ShipComponent>
<InternalName>AssaultCarrier Module</InternalName>
<DisplayName>AssaultCarrier Module_Name</DisplayName>
<Description>AssaultCarrier Module_Dec</Description>
<ArtDefine>Carrier_Module_01</ArtDefine>
<Category>Modules</Category>
<Type>AssaultCarrierModule</Type>
<ShipComponent>
<InternalName>EscortCarrierModule</InternalName>
<DisplayName>EscortCarrierModule_Name</DisplayName>
<Description>EscortCarrierModule_Dec</Description>
<ArtDefine>Carrier_Module_01</ArtDefine>
<Category>Modules</Category>
<Type>AssaultCarrierModule</Type>
Though they are the same type, the AssaultCarrierModule type only accepts modules which affect the AssautlFightersCap, due to how it is defined in ComponentClassDefs.xml:
<ComponentClass>
<UniqueID>AssaultCarrierModule</UniqueID>
<PrimaryStat>AssaultFightersCap</PrimaryStat>
</ComponentClass>
Which EscortCarrierModule does not do (it increases EscortFightersCap, even though EscortFighters and AssaultFighters are identical). So a blueprint looking for AssaultCarrierModules will never recognize EscortCarrier modules as belonging to the type to be used in place of AssaultCarriermodules.
A similar problem happens with Beam-, Missile- and KineticAugmentation1/2 (and no doubt other components too, though I've only seen these so far because of using them in modded ships). The components in ShipComponentDefs.xml have different stats than what ComponentClassDefs.xml is looking for. This means the AI cannot use the first two augmentation modules to use up the resources it does it's darnest to gather... in other words, they're blowing all their Durantium, Elerium and Antimatter on Tiny prototypes, because that's all it can do until very late game.