I have switched them all to mining litecoin since my last post but will soon switch them back. Let me know If there is anything else you'd like me to test.
If every miner is using a separate wallet, then you shouldn't have issues with running out of pre-generated keys. If your wallets are encrypted, then you may run out of keys because the wallet needs to be unlocked before new keys can be generated.
Connectivity is also important because mining will stop if the wallet loses all connections. Using the -connect parameter is probably a bad idea because it introduces a single point of failure. If your central node crashes, then all the slave nodes lose connectivity. You should use -addnode if you want to have a central node.
I looked at the code a bit and I spotted a potential issue with shared wallet mining. The issue is that N mining threads are probably using the first N keys available in the wallet. If multiple machines are using the same wallet, they may be trying to solve the same block if the timestamp and the extra nonce are the same. I can write a fix for that but it's unlikely to help you since you're using separate wallets.
That's all the ideas I have currently.