It looks like your curve-fitting routine is using a 5th-order polynomial, and the data point at the end (the 100% data point) is not fitting that model very well. Hence the best fit curve has greater error for many of the other points. I notice that the curve includes the origin (0,0), yet from the data it looks like it that value may not be correct - can you try fitting a curve that starts with the 5% data point rather than 0%? I bet you'll get a better fit.