Your services may run in separate VMs, but there are still some dependencies between them. You need to know, and think about, all the dependencies between your VMs.
For example, they share a common network interface (the one of the host machine). That is a dependency. If one VM is able to clog the network interface (and maybe your crashing one is doing exactly that), then it is clogged for all the other VMs too.
To resolve that dependency, you can either put another network interface card in your host machine and let only the pihole VM use it, or run the pihole on a real physical Pi.
You could also resolve the jellyfin's own problem. But resolving the dependency might give you a more reliable system.