Limits on Ethernet shield packet size?

I'm using the UDPSendReceiveString and I've noticed that I can only receive 20 to 30 characters in a packet on the Arduino.
Anything larger than that just ends up as garbage.
It still claims to send the correct number of bytes, but the data is wrong.
Does this have something to do with the UDP_TX_PACKET_MAX_SIZE?
If so, is there a way around this?

TX is outbound traffic, isn't it?

Different Ethernet standard define different MTUs, but I would have thought that whatever shield you're using should be able to receive the maximum MTU for that Ethernet variant. However, you may find that the driver libraries or application code use buffers which are too small to accept the MTU. You'd need to look at the code (or documentation, for 3rd party libraries) to see what the maximum supported receive size is. For example, if you're IEEE 802.3 Ethernet with an MTU of around 1500 bytes, it's unlikely that you'd want to hold a whole packet in memory.