I'm terrible at explaining formulas but here's my attempt.
First lets simplify formula be using smaller range.
Taking your sheet's set up (added 1/8 & 1/9 with sick days for demonstration).
And start and end is 1/5/2016 and 1/9/2016 respectively.
Formula to calculate instances, becomes...
=SUM(IF(FREQUENCY(IF((I2:I13<>"")*(H2:H13>=H6)*(H2:H13<=H10), ROW(I2:I13)),IF((I2:I13="")*(H2:H13>=H6)*(H$2:H13<=H10),ROW(I$2:I$13))),1,0))
Lets look as component parts.
Inner IF: IF((Range<>"")*(DateRange>=StartDate)*(DateRange<=EndDate),ROW(RANGE))
Which is Data Array for Frequency.
This simply checks for rows within range that matches each criteria and returns array.
Range<>"" = {TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;TRUE;FALSE;FALSE;FALSE}
or
{1;1;1;1;1;1;0;1;1;0;0;0}
DateRange>=StartDate =
{0;0;0;0;1;1;1;1;1;1;1;1}
So combining the 2 it becomes (1 where both are true, 0 otherwise).
{0;0;0;0;1;1;0;1;1;0;0;0}
DateRange<=EndDate =
{1;1;1;1;1;1;1;1;1;0;0;0}
Combine and:
{0;0;0;0;1;1;0;1;1;0;0;0}
ROW(Range) =
{2;3;4;5;6;7;8;9;10;11;12;13}
Combine Row Range with TRUE/FALSE array:
{FALSE;FALSE;FALSE;FALSE;6;7;FALSE;9;10;FALSE;FALSE;FALSE}
Bin Array for Frequency is second IF in same format as Data array, only difference being checking for where Range="".
It evaluates to...
{FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;8;FALSE;FALSE;FALSE;FALSE;FALSE}
FREQUENCY then evaluates to {2;2}. 2 sets of consecutive occurrences.
SUM(IF({2;2},1,0)) portion simply adds 1x # of times conditions are met.
=1 + 1 = 2