Pedro & Mr Jensen - I am concerned there are other junk characters in the data set name that didn't print. Mr. Jensen's idea about IEHLIST ought to get the real data set name - with all the junk characters - into a SYSPRINT data set. Pedro's idea of using quotes for the data set name in the JCL ought to work too. That's something I completely missed! Must be yet another senior moment. Transferring the data set name from the IEHLIST SYSPRINT to the JCL might be an interesting exercise, but it should be doable. This scheme is simpler that what I would have done!
I agree with Pedro that zapping the VTOC is the last thing to try, but as a last resort you might have to do that. Before you start, turn off the VTOC index - you'll reindex the volume later, then ZAP a legal data set name into the bad DSCB or, ZAP it to a format 0 DSCB - this amounts to deleting the data set. If you have ZAPped a legal data set name into the DSCB, delete the data set, then reindex the volume.