In the session message there is a sport type and a sub sport type. The sport type for diving is 53, but it does not look like that value made it into the public FIT SDK. It is just a coincidence that the sub-sport for single gas diving is also 53.
For diving activities, what you will see in a FIT file from a Garmin device is that the sport type will be set to diving, 53, and the sub sport will be set to one of the following:
generic - 0
single_gas_diving - 53
multi_gas_diving - 54
gauge_diving - 55
apnea_diving - 56
In your CSV file the session message shows sport type 53 and sub-sport 0, which looks correct.
We will add the diving sport type to the public FIT SDK in the October release. In the meantime, you can add "diving" with a value of 53 to the list of sport types in your project. Depending on what language you are using, sport types are either an enum or a list of #define values.
Ben