I came across an interesting file; ConditionTorpsReady.py
SetStateFromTorpCount and the def's below may be something to look into playing around with, and see if you have any luck manipulating an outcome. At least then we would know if we're on the right track. Looks promising to me, many scripts seem to use conditions, if we're lucky, adding a check to or editing one of the def's could fix the bug.
Edit: Also found a file ShipScriptActions.py which may have some relevance. There may be some code in the file that could potentially fix the problem. Looking down to the def ReloadShip if you look at pTorpSys there is a bit of code that deals with filling the torpedo tubes fully, but I believe it also replenishes the ammo stock. I'm sure it can be modified to solely refill the tubes, but I think a new def would need to be created, perhaps calling it def RefillTorps, and inserting the modified code. This file looks like it would be imported by another file, for example any .py that deals with docking the ship to a base with repair or replenishment capabilities would potentially import this file and access some functions.
Side note: Have you tried docking at a starbase/shipyard after unloading the launcher to see if that fixes the bug and refills the tube back to 10?