I would also suggest using taskset[1] on each iperf server process to bind them each to a different cpu core.
Finally, I would suggest UDP on iperf and let the sending Pi's just completely saturate the link.
If you do all that, I think you have a good chance at achieving 3.5Gbps over just the Intel card.
You have to set the irq affinity to utilize the available CPU cores.
There is a script included with the source you used to compile drivers called "set_irq_affinity"
Ex (Sets IRQ Affinity for all available cores) :
[path-to-i40epackage]/scripts/set_irq_affinity -x all ethX
I wish I had the cycles and the kit on hand to play with this!
edit: run `perf top` to see if that gives you a better idea.
15.96% [kernel] [k] _raw_spin_unlock_irqrestore
12.81% [kernel] [k] mmiocpy
6.26% [kernel] [k] __copy_to_user_memcpy
6.02% [kernel] [k] __local_bh_enable_ip
5.13% [igb] [k] igb_poll
When it hit full blast, I started getting "Events are being lost, check IO/CPU overload!"