I think we've figured it out.
When we first started using Jenkins we installed it using the Windows installer, which installed Jenkins as a service. This installed its own version of Java as well and it has been using that all this time to run Jenkins:
"C:\Program Files (x86)\Jenkins\jre\bin\java.exe" -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b17)
Java HotSpot(TM) Client VM (build 23.25-b01, mixed mode)
This was a bit of a surprise for us - we'd been updating Java regularly, the "java -version" command gave us version 8, and we never realised that Jenkins was using its own version of Java. I think that this is why Jenkins 2.54 was failing even though we had Java version 8 installed on our server.
Since the issue is not with Jenkins itself I am satisfied that this issue is "Not a defect". Though I am a bit concerned that if Jenkins from the Windows Installer is using its own version of Java it could leave a security hole. Maybe this is something that's worth looking into?
Thanks for pointing us in the right direction Oleg, we really appreciate your help and patience!