To support my idea that it's not handling the header correctly, if I run this VCF omitting the --format vcf flag, it is unable to detect that it is a VCF.

It does return the annotated VCF lines correctly when told that it's a VCF, but doesn't pass through the existing header lines and also doesn't add the CSQ header line that contains the key for parsing the information the VEP adds.

Has anyone encountered this before? Any suggestions on how to make VEP do the right thing here?

Update - this doesn't seem to happen on my laptop's more recent install of VEP (version 87 vs version 86). I guess it's either a version issue or a somehow screwy install. I'm going to go ahead and mark this as the best answer for now, as an upgrade seems like it will solve the problem.

If anyone has additional information or has encountered this, would still love to hear what might be wrong.