In testing here, I confirmed that sticking a %20 string in my XMLTV channel IDs I was able to reproduce the problem (using the hosted Plex web client). Interestingly, if I just insert an actual space instead of the escaped %20, it works fine. So I’m curious why VBOX is URL-encoding this data to begin with. It’s not as if the XMLTV “spec” suggests it (or disallows it for that matter).
So a quick workaround may be for you to download that file and do a find/replace on %20 with a space, and point your Plex DVR at the modified file.
Also, this appears to be a duplicate of: