My first question, why do you have 20 jobs with only 50VMs? That seems to add an unusual amount of complication. My first thought, perhaps to simple, but why not just break that down into 4, roughly equal jobs. Then create a media pool for each one, one for each of the full backups, but just use a singe media pool for incremental backups. Yes this would only use a single drive for the incrementals, but I can't really imagine that would be a problem with only 50 VMs.
Since you're taking your tapes offsite, why even bother tracking their retention in Veeam (at least until we have more advanced GFS retention). I'd probably just set a high retention, or perhaps even manual overwrite, on the full media pools, and manually blank tapes when I move them back in to the library. In other words retention would be manual. You have a pretty simple retention cycle so this should be pretty easy.
I understand that none of this is perfect, but I think if you look to simplify your setup it will be pretty easy. I'm also a little curious about how much data you have total. Let me know your thoughts and we'll keep working through it.