If an existing coordinate is inside but very close to one of the new locationspan end points, that coordinate will not be part of the new span, hence you may not find all points of the existing span in the new span. It uses LOCATION_EQUAL_TOLERANCE on the M value.
public IXYZLocationSpan CreateSubLocationSpan(
double startChainage,
double endChainage
)