In case two reaches cover the same location (when one reach has been split into two at exactly that location), you must select whether you want the upstream or the downstream reach.
public IRes1DReach FindReach(
string reachName,
double chainage,
bool downstream
)