Functions not working after manual deployment

And the ZIP archives remain as previously described?

If you run file * in .netlify/functions, what does the output show? Does it show the .zip files are ZIP archives?

% file *
hello-world.zip: Zip archive data, at least v2.0 to extract, compression method=deflate
mail.zip:        Zip archive data, at least v2.0 to extract, compression method=deflate

Yes. It shows them as you have them there.

Everything from here is likely guesswork (educated or otherwise guesses.)

Have you tried removing Netlify CLI globally and reinstalling it?