So doing some digging, the "payload too long" error comes about when a packet's length is greater than max_payload_length. This can be seen in p2pool/util/p2protocol.py.
This is called from p2pool/bitcoin/p2p.py and p2pool/p2p.py where it sets max_payload_length to 1,000,000.
I am going to change the code to print out the packet size, as well as, change the max_payload_length to twice the size. I will let the code run for awhile and see what happens and report back.