I'm going to give this thread a little bit more of a poke, just for future reference and other potential users.
Are you using the updated jar or just the one in the 1.09.1 zip file on the XMLTVDB website?
First, as CountryBumkin said, I have never seen a version 1.09.1 of XMLTVDB. But I have seen many versions created by people other than the author, and sometimes they are packaged up with a version of Java from the time they are created. Maybe one of those versions is what you have got. Where did you get the version 1.09.1 from? You should be using version 1.0.1 from the official site CountryBumkin posted,
https://code.google.com/p/xmltvdb/downloads/list.
As I was able to run it once after fiddling with Java versions I'm 99% convinced it has something to do with Java...
I am 100% convinced that it is nothing to do with the Java version you are using. I have run XMLTVDB on Java 8 Update 66 and 71, and it ran on earlier versions in the past. All worked fine. When you first ran XMLTVDB and it appeared to work, just that once, you didn't have the output file defined in the properties file, as noted later. I would be very sure that what happened is that XMLTVDB tried to run, checked the Output File setting or tried to create the output file, failed, and so stopped before attempting to process the XMLTV input file. It would have taken a while for XMLTVDB to give up on creating the output file, since it would be waiting for Windows to respond, and there were probably retries involved. Basically, I think you have to ignore that first attempted run as an anomaly, as that setting was wrong.
I don't understand why imeric is having a problem running mc2xml and XMLTVDB when I ran the same program (using his postal code) and it works fine for me. If there are ampersands in imeric's XMLTVDB code they should also be in mine.
UPDATE: I just ran mc2xml with your zip code and then XMLTVDB (ver 1.0.1) and it running fine.
If your not using 1.0.1 upgrade to that first, if your still having trouble, I'll go through step by step with you.
Did you check your output file to see if there were ampersands in it? If there were, did they have "amp;" after the ampersand, which XMLTVDB would then understand?
Are you sure you ran the same mc2xml version provided with MC as Imeric is running? You haven't replaced that version with the version 1.5 you have by any chance?
As I mentioned earlier, John Douglas, the author of zap2xml and mc2xml, has recognised a problem with reading un-encoded ampersands, and offered to provide a version that encodes them for programs that require it. He posted about that on 2015-08-11. Since then he released the Donateware version 1.5 of mc2xml, which may well have had the ampersand fix in it by default. So, if you used your version 1.5 of mc2xml to test Imeric's postcode, the XMLTV file mc2xml created may have had encoded ampersands in it, and XMLTVDB would therefore not have had a problem processing it.
By the way, mc2xml is up to version 1.6 now, and John seems to have removed the requirement to donate to get the version that works with Rovi data. I haven't tried to run it against Imeric's post code as I don't have a "Key" and "Secret" to run it independently, and I haven't tried to update the version in MC. In fact I would probably have to break my MC installation in order to test it, since my TV setup is completely different.
Finally, the change;
Media Center 21.0.28 for Windows -- Available here
21.0.28 (12/14/2015)
5. Changed: TheTVDB lookup can look up tracks that don't have a season or episode number and will now look up just by the episode name.
is working fine, but as you say, it gets stopped by the current practice of placing the year into the Season tag if it is blank, and that deleting the year from the Season tag means the lookup uses S0Exx, which will always fail.
As I have said elsewhere, the insertion of the year into the Season tag when it is empty needs to be stopped, but there also needs to be some more logic around the updating of the Season and Episode tags, because if the year isn't written to the Season tag, but the Episode number is provided by the EPG "onscreen" Season/Episode field, then the MC lookup will still fail because MC will use S0Exx. If the Episode tag wasn't updated when no EPG Season field was available, then the MC lookup by Series and Episode name would work.
Anyway, until that functionality is fixed, I have an idea on how it could be worked around. If an suitable expression could be written and added to each recording rule and the Auto-Import function for the location containing TV recordings, such that "if Season is <four numeric digits> OR <blank>, set Season and Episode tags to <blank>". With that in place, each recording made or imported into MC that did not have a non-year Season tag would have both tags deleted, and the MC lookup by Series and Episode name would work.
I might take a while to write such an expression, since I'm not up to speed on all of MC's expression language. It will also be a little difficult to test on my installation, without breaking things. But I could do it. However, if someone else wants to come up with the expression to be tested, great!