I used to have this problem - I could run a weekly workout of 5x1000m in 3:20-3:22 with 60 seconds rest as an indicator that I should be more than ready for sub-17. On good days I could pull off six of those reps instead of five. Once I rested for ten minutes after, and ran a 2:57 for 1000m to end the session. Then at the goal race I would run 17:05, or sometimes even a little slower. I was doing a good amount of volume, so endurance wasn't the issue.
I came to the conclusion that perhaps I have a bit of anxiety surrounding races, where during it I may not believe I can push quite as hard without fear of blowing up or whatever. I feel more comfortable alone and really digging deep, gutting it out alone at the end of a super-hard tempo or set of repeats than in a race side-by-side with others I have to challenge while also challenging myself.
It's weird - I just seem to be able to push myself furthest when alone. It's almost a performance-anxiety thing when in the presence of others, and perhaps more importantly, when it counts. It's not like I race terribly, but what my training indicates always seems to not fully pan out. Maybe you have similar feelings?