Thanks for all the suggestions. Unfortunately, I have already tried both of these variations with no luck. I really think there is something fundamentally wrong here.
I am actually testing this on a backup. Ill drop this and start again to see if this makes a difference.
I will also try the DBCC DBREINDEX method.