I have seen this problem when interface choose a lower duplex setting. Generally i use this simple trick.
1. enable auto neg with all options enabled
2. disable all capabilities except adv_1000fdx_cap.
This will make interface run auto-neg but it will not negotiate anything below 1000Full.
I have more than 10 machines running like this. no issue since past 9 months
.
Just make sure to add a start up script to make these changes available after reboot. or if you are comfortable you can edit /etc/system file.
Hope it helps.