I suppose you could try altering this entry in items.xml and then looking at the nailgun. Only try Action0 as the repair action for the zombie hand and not Action1.
<item name="meleeHandZombie01">
and then looking at the nailgun.
<property class="Action1"> <!-- UseAction -->
<property name="Class" value="Repair"/>
<property name="Delay" value=".73"/> <!-- Repair actions still need the delay amount -->
<property name="Repair_amount" value="1000"/>
<property name="Upgrade_hit_offset" value="-5"/>
<property name="Repair_action_sound" value="nailgun_fire"/>
<property name="Upgrade_action_sound" value="nailgun_fire"/>
<property name="Allowed_upgrade_items" value="resourceWood,resourceClayLump,resourceSnowBall,resourceScrapIron,resourceForgedIron,resourceForgedSteel,resourceConcreteMix,resourceCobblestones,ironDoor1_v1,vaultDoor01,scrapHatch_v1,vaultHatch_v1,resourceYuccaFibers,resourceCloth,resourceScrapPolymers,resourceNail"/>
<!--<property name="Restricted_upgrade_items" value="concrete"/>-->
</property>
<property name="Group" value="Tools/Traps"/>
<property name="RepairExpMultiplier" value="10.8"/>
Only try Action0 as the repair action for the zombie hand and not Action1.
Zombies won't have the upgraded materials to repair so I'd try
<property name="Allowed_upgrade_items" value="*"/>
or
<property name="Allowed_upgrade_items" value=""/>
to start. Have fun messing with it!