Pienso que la validación debería atender los extremos para evitar intersección, es decir, mientras el inicio y fin de la hora ingresada por el usuario sea igual, inferior o superior a los extremos entonces es válido, por ejemplo:
DateTime inicioJornada = DateTime.Today.Add(new TimeSpan(7, 0, 0)); DateTime finJornada = DateTime.Today.Add(new TimeSpan(12, 0, 0)); DateTime inicioCustom = DateTime.Today.Add(new TimeSpan(6, 0, 0)); DateTime finCustom = DateTime.Today.Add(new TimeSpan(13, 0, 0)); if ((finCustom.CompareTo(inicioJornada) <= 0 && inicioCustom.CompareTo(finCustom) < 0) || (inicioCustom.CompareTo(finJornada) >= 0 && finCustom.CompareTo(inicioCustom) > 0)) MessageBox.Show("Permitido"); else MessageBox.Show("Cruce de horario");
Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.