It turns out that since the database/form I was using was upgraded from SS2 to SS3, the database hadn't upgraded quite right.
I managed to find and fix the problem by comparing it to a working userform on another database which directed me to the fact that there were no entries in the EditableFormField_Live Table so I fixed it by copying the rows in the EditableFormField Table to the EditableFormField_Live Table.
Must have been quite an old 2.* site, that migration took place probably 2-3 years ago now. https://github.com/silverstripe/silverstripe-userforms/blob/master/code/tasks/UserFormsVersionedTask.php is the task you need to run to republish all the form fields but sounds like you've got it sorted by hand.