Are you running always the same routes and the same type of surface? When you prepare for the road race, it crucial to run road and get comfortable that harsh and hard surface. The impact for the leg is one of the hardest when running in the road, so you need to get used to it otherwise you will struggle. But you still should vary surfaces sometimes, why?
Lack of the variation, strengthening muscles weakly. Running soft surfaces such as grass or uneven like trails, strengthening all those little support muscles in your leg, as your leg land different angles. Also, trails are good for building strength as there more often hills and on the soft surface, you need to work harder especially during the midstance of running gate when propulsion happen.
When surface stiffness increases oxygen uptake decrease, which why softer surfaces are also good for increasing oxygen uptake capacity (Kerdok, et al., 2002). Also, metabolic cost and leg stiffness change when surface stiffness changes. When maintaining the same speed at the different surface stiffnesses human are able to keep running gate, stride length, peak vertical ground reaction force and the foot-ground time at the constant (Hardin, et al., 2004).
So if you experience difficulties in running certain surface, it might indicate the poor variation of training. Step out of your comfort zone and challenge your body are the only way to become a better runner. Track your running, how much you spent time off the road and again road, how often you run hilly roads, do you have poor oxygen uptake or are you suffer lack of speed, wrong technique. Little things can make big difference.