After handling a few tasks elsewhere, I came back and discovered the problem: an off-by-one error in the `snprintf` that generated the filename. Instead of generating filenames that were 16 bytes long, we were only writing 15 ASCII characters… and a null byte ($00).
Since I wasn’t padding out the filenames with $A0 bytes, like you’re supposed to do when filenames are less than 16 bytes… the C64/emulator... responded to the malformed filenames.
Much better. Now to give actual names, etc.