Why are some of my FIT files not converting?

EDIT:  After converting cycling.fit to csv, I found the offending lines in the csv file. Lines 4 to 7 where it is encoding developer data.  These lines mostly look ok when I compare to "activity_developerdata.csv" from the docs. A couple of the fields are written in a different order. For example, in my file the "developer_data_index" precedes "application_id", whereas in the example csv file they are declared the other way around. I moved the order of these fields (and corresponding value and units) but this didn't seem to make a difference. My csv file also has a field called "scale" which I deleted, and this didn't help either.

____________________

I'm trying to develop a web app for converting and editing some FIT files.  The files are originating from Suunto devices.  I have two files here, cycling.fit and windsurf.fit.  Both files will convert from fit to csv.  Converting back to fit, only windsurf.csv will work.  When I convert cycling.csv back to fit I get errors:

FIT CSV Tool - Protocol 2.0 Profile 21.54 Release
Exception in thread "main" com.garmin.fit.FitRuntimeException: Incompatible Protocol Features
        at com.garmin.fit.FileEncoder.write(FileEncoder.java:166)
        at com.garmin.fit.FileEncoder.onMesgDefinition(FileEncoder.java:151)
        at com.garmin.fit.csv.CSVReader.read(CSVReader.java:260)
        at com.garmin.fit.csv.CSVTool.run(CSVTool.java:257)
        at com.garmin.fit.csv.CSVTool.main(CSVTool.java:332)

The windsurf.fit  file uses GPS tracking while the cycling.fit file uses GPS and data from an HR sensor and a power sensor.

zip file with the two fit files

Perhaps someone can tell me what is "wrong" with the cycling.fit file?