Hmmm, I seem to have subtitles in most of my recordings.
Can you take a look in syslog on your tvheadend machine, please, and see what's actually being recorded? You should have something like this when a recording starts:
Feb 3 07:28:30 revo tvheadend[1294]: dvr: /home/xbmc/Recordings/programme.ts from adapter: "Conexant CX24116/CX24118", network: "ASTRA", mux: "ASTRA: 11,307,000 kHz Vertical (No satconf)", provider: "BSkyB", service: "Channel"
Feb 3 07:28:30 revo tvheadend[1294]: dvr: # type lang resolution samplerate channels
Feb 3 07:28:30 revo tvheadend[1294]: dvr: 1 MPEG2VIDEO 0 x 0
Feb 3 07:28:30 revo tvheadend[1294]: dvr: 2 MPEG2AUDIO eng 96000 0
and, if the broadcast contains subtitles, you'll get something like:
Feb 3 07:58:31 revo tvheadend[1294]: dvr: /home/xbmc/Recordings/programme.ts from adapter: "DiBcom 7000PC", network: "Wibble", mux: "Wibble: 498,000 kHz", provider: "", service: "Channel"
Feb 3 07:58:31 revo tvheadend[1294]: dvr: # type lang resolution samplerate channels
Feb 3 07:58:31 revo tvheadend[1294]: dvr: 1 MPEG2VIDEO 0 x 0
Feb 3 07:58:31 revo tvheadend[1294]: dvr: 2 MPEG2AUDIO eng 96000 0
Feb 3 07:58:31 revo tvheadend[1294]: dvr: 3 MPEG2AUDIO eng 96000 0
Feb 3 07:58:31 revo tvheadend[1294]: dvr: 4 DVBSUB eng
This should then match what you can see in VLC if you look at the CODEC information (CTRL+J). It may be that either (a) you're not recording any subtitles, or - more likely - VLC is simply choking because the language is undefined (the DVBSUB und (000) you mentioned).
If it's the latter, and VLC simply won't play that track (perhaps because it doesn't know what character set to choose without the language flag?), then you'll have to change the file. How you do that depends on what format it is/what container it's in: I know how to do it in mkvmergegui, but .ts is a black art to me. You can theoretically remux it to get it into a different tool, but I always find that stream errors stop that before I get anywhere.