Hi Twom,
I had a look at your two files and noticed a couple of things.
-The header datasize is still 0x00000000
-The header CRC is the initial value (CRC of header only)
-Your file ends on a message boundary (no file CRC present at all)
It seems to me Encode.Close() was not called on the 2nd file. Try checking the logic of your application in this area.
Why do you say compressed timestamps are being used? I didn't see any record headers with bit7 set (see section 4.1.1 and 4.1.2 in the FIT Protocol Document). What language are you programming in?