As an enthusiast but not an expert nor a person with unlimited time and money, I found that while hitting 1gb/s LAN on ethernet is easy, moving up to 10gb/s has been hard. I have 2 networking cards and a router in between them, all 10gb capable. Yet, it's really hard to get them to do that. I started with reliably getting 2.5gb/s and managed to move up to 5gb/s through some tweaks, but actually getting the full value…
But about your problem - cards manage to negotiate 5 Gbps, or even negotiation fails? If it's the latter, then it might be cables.
Overall, for me, it works to simplify the network as much as possible and first achieve results on a direct connection to the router when it's nearby and then add more and more.
Oh, and also measure as much as possible (that's why I'm sad about the state of system metrics on OSX, for example)