That's the problem, the Accumulator is great at around 75% but that 25% it doesn't collect equates to fair amount of ammunition lost after 4+ hours, especially if you're using fast weapons. I think that, given 25% loss, a slower weapon such as MSB you might expect to lose around 7.5 arrows a minute.
Your solution sounds superb though, I think that's the best way to emulate people too as I don't think anyone would bother for just 1 arrow. So something like pick up if stack is >'X' sounds like a great idea, although I'd maybe set the lower range to be a changing random int between 3-5 - so something like if ( 'X' >= random(3,4,5){pickup_arrows}
Thanks again though, great script and it's reassuring to see the developer so engaged!