Sorry, I misread this morning... and thought you were referring to the first line !
I suspect / hope that the addition of a Round will address the aggregate anomaly
basically, the way this approach works is to take the (now) time values in D1:D3 and multiply them by 86400 to convert to seconds as integer -- so 00:00:01.05 become 1.05
once done it converts the decimal remainder of that value to a base 100 equivalent using the fps value as "original" base, so on 24 fps that 1.05 would be converted to 1.20833 (i.e. 1+5/24)
once it's aggregated the base 100 balances these can be converted back to base 24 - e.g. 3.20833 -> 3.05 (edit: and then /86400 to convert back to time 00:00:03.05)
the issue, without the above ROUND in place, was that the decimal seconds were coming in at say 1.99999... and that converted to base 100 from base 24 -> 4.999 etc (1+99/24 etc)
with the ROUND in place we handle seconds to .000 milliseconds, which is fine, and this would ensure 1.99999 is handle as 2.000, and thus remains 2.000 when converted to base 100 etc.
hope that's not too confusing - made sense to me when I typed it... but it's been a long day!