I get this problem too and it seems like maybe the w5100 buffer is getting too full and not clearing properly (uneducated guess)
I get the same problem when using the UDPsendReceiveString sketch that comes with the ethernet library. If I send udp packets one at a time the arduino reports back correctly but if I send a constant stream of artnet data (I think 538 bytes per packet and usually at a rate of 40-60 pps) the arduino freezes (or probably just the w5100 freezes)
As artnet is a realtime communication all I need is to read one packet from the buffer every time the arduino's loop passes round, therefore I have no use for buffered packets apart from the one I want to read that cycle.
I tried flushing with Udp.flush but that didn't seem to work.
It's spinning out with even smaller packets too.
I've tried 2 units. And I don't know if it's just me but it seems to get worse over time.