I do not understand why it's so hard to fix it. Here is a solution:
Make NPC ships specs change after battle is over. This means in battle they will perform as usual, but after battle(npc boarded or battle is finished) is over they will be reset to 'useless' mode. 'Useless' specs mean players can capture ships , but ship stats and slots will be -50% of original in battle stats. Same for bonuses when breaking ship into parts. This will quickly change dupping and promote player driven econ. Even if player wants to sell captured 'Used' ship, it will be cheap and won't provide good coin.
Code structure for NPCs in battle example:
-Battle<Start<All<100% preset strength
-Battle<Boarding<Start<100%
-Battle<Boarding<End<50% after battle change
-Battle<End<All<50%
-Reward<Capture<5%
Ship
-Captured<ShipCost<2%
-Captured<ShipParts<2%
vs
Player built
-PNew<ShipCost<100%
-PNew<ShipParts<60%