If someone is shitting blocks like a machine gun and network diff is not able to catch up, so blocks still come out in 1 sec periods between them pool is not able to make all its work and stops working
TODO;
re-target diff from block to block in good way.
The difficulty or speed of blocks is not related to the 'transaction too large' error you get.
A 'transaction too large' error is when you have too many inputs that make up a transaction, causing a transaction that is too large (in bytes). You can solve this by combining the inputs by sending it to a new address.