This is a public service announcement as this had me scratching my head for a while:
I have written a tool to take a BaseCamp exported GPX file, split the tracks into smaller parts, then generate FIT file courses along with Course Points for near-the-track way points.
The FIT files are fine and open up in various tools, however when trying to import them on device only one or two of the nine files would show up.
It turns out that if the file ID message has the exact same timestamp as another FIT file, the Garmin Edge see them as the same file.
For instance, copying one file to NewFiles, it imports. The copy another file, and the Edge device will then replace the previous one with the new file.
The solution is to ensure that for each FIT file generated the timestamp is unique.