iperf, jperf (java based iperf) and ethtool will help a ton in figuring this out!
TFTP is a "block by block" file transfer protocol which makes it a completely different beast from FTP/SFTP/FTPS. Each block that is transferred is checked(acknowledged) to make sure it made it across the link intact. If every little block of data is not perfect, those blocks get re-transmitted, slowing down your transfer considerably. I have gone up to a 16384 block size on a GB network link with no problems, but I have also had to knock that back considerably on less reliable GB links...the smaller the block size, the greater chance of a successful block transfer, thus less re-transmissions. It's a bit of a balancing act finding what works best on your network, but a little trial and error should make quick work of figuring that out!
This relates more to Windows as it involves TFTP Windowsizing (RFC 7440) to transmit more blocks at a time, but is a great guide to illustrating the process of figuring out the settings that are going to yield better transfers on your network.