I think SG nailed it - the shift start/end fields include an inherent date, which is breaking the COUNTIF() logic.
An alternative to using text fields would be to tell Numbers to focus ONLY on the Time component of the cell, ignoring the date. There are a couple of ways of doing this.
The easiest (conceptually) is a combination of COUNTMATCHES() and TEXTJOIN().
TEXTJOIN() takes an array of cells and returns a single text object of the results. The nice part here is that it takes the formatted value of the cells (e.g. "3:50PM") and not the underlying date/time object.
You can then run this through COUNTMATCHES() to find how many times a given string appears.
In this case, set cell C20 to:
=COUNTMATCHES(TEXTJOIN(",",TRUE,C2:C19),"9:50")
This will take the range C2:C19 and convert it to a single text string which it then compares to "9:50", returning the number of matches.