I'm going to guess it's right at this step
I put the dates/times in the Sheet1 column into two listboxes on a userform(FromDate listbox and ToDate listbox, formatted as "[$-3409]dddd, dd mmmm yyyy hh:mm:ss;@").
As it seems you're aware, there are many different decimal values representing a given time up to the second.
Example: Both numbers
42221.5276481
481
42221.5276481
571
When formatted as a mm/dd/yyyy hh:mm:ss are translated to
08/05/2015 12:39:49
But the underlying numeric values are different, but they appear the same formatted as a date/time.
So with that, when you format the values in the listbox as "[$-3409]dddd, dd mmmm yyyy hh:mm:ss;@"
That action rounds the value off to the nearest second
Which is then 42221.527650463 in Decimal value.
And that will no longer be an exact match to the original value before it got put into the listbox.
Then when you take it from the listbox and put it into B5 you're putting in the rounded Date/Time.
You can see this in action below..
Formula in C represents your action of putting it in the listbox with the custom format.