Is there any way to review a history of backup sizes per job and per VM?
It seems that this Veeam ONE report
is exactly what you are looking for.
Is there any way to identify what files exactly caused the backup size to spike?
This one might be tricky.Veeam does not offer such report now. First I would check if deduplication or defrag is involved. You can also use some third-party software to compare files and folders sizes from the latest backup with those from the previous one. Just start FLR wizard
to mount drives from the backup and run https://windirstat.net/
against it - it will show you the file tree with all sizes so you can compare it.