These are just code names for different software versions. Based on mountain names. Generally you should go with what you think is the most stable version for the features you need. I would probably not go with a 3.x version though unless you have features you know only work in that version. For example, a lot of the Dot1X stuff got changed in later versions.
Indeed you now have 4 code type visible
Denali / Everest / Fuji and 3.6.8E
So 3.6.8E is the original or OLD type of code that was on the 3850, that has a parallel in the 16.X.X
You kinda need to get off that and onto 16.X.X
Denali (16.3.X) is the supported / tried and tested version, denali is where you should be
Everest (16.6.X) is the latest version of denali code - still not fully tested (I have heard bad reports)
Fuji (16.8.X) is like the T image of old - new versions of code and extra / new features.
You should be on Denali unless there is a specific feature that you need that isnt on Denali -
Notice the 'STAR' next to denali ?? that is the recommended version - only Denali and 3.6.X version have this recommendation.
One last note - they are trying to standardise the features across releases of 3850 / ASR100X / Nexus / Core / Edge etc etc
In theory if you are on a denali release and you have a feature - this feature (if possible) will be supported and be consistent (same config) across all platforms - leading to easier config management. FYI
So, like Apocolpse now... never get off the boat - stay on Denali.