After an exceptional amount of time I've discovered that POST uploads use the File Data Name as file_data whereas Plupload defaults to file.
After using the option file_data_name: 'file_data'
in Plupload everything has started to work. Clearly the header wasn't quite what Vimeo's API expected and so it didn't work.
Would have been nice if Vimeo returned something else besides Thanks for uploading! when it doesn't process anything.