Por algum motivo, eu tinha utilizado Integer nos IDs de todas as minhas entidades ao invés de Long. Na hora que o Vue.js chamou via POST o método da minha API, o valor do ID chegava como nulo, impossibilitando de fazer a persistência.
Resultado: eu tive que derrubar as tabelas, alterar de Int para BigInt no Workbench e re-popular elas com arquivos CSV. Até descobrir o que era e terminar de arrumar tudo me levou mais de 1 hora.
Fica a dica para alguém que tiver o mesmo problema