Couple of numbers are involved. The map is divided into fish_chunks, which is an area 100x100 tiles. This chunk is given 100000 "fish" once a fishery is placed, and other fisheries in a radius of 12 is what gives the "overfishing" debuff. Water purity is given by pollution, 4000 is 0% pure, 0 is 100% pure. Actual fish in the water has no effect. These only effect YIELD though. Fish growth is handled purely by a random number, 0-10, added every 20 ticks. There are lines in the config that indicate the author was going to make it more complicated and based somewhat on pop size, but no code.
It's important to note that a fish_chunk isn't made until a fishery has been placed in it - this means fish won't spawn or reproduce until a fishery has been placed in that chunk. You can remove the fishery after placement to let stock build back up, OR you can just fill up the inventory slots on the fishery and it'll stop harvesting.