Hi Paul,
I have exactly the same issue. I have posted a question about this here today.
I've noticed that the services file built as stage 1 in the process is correct in reference to the names shown in TVHeadEnd, but when building the icons, the names of the icon files are slightly different for some of the channels such as BBC2 (as you say).
I notice that it's the transponder part of the name.
So it's not just me then!
I'll let you know if I make any progress... My next step is to look at the script and try to work out how it uses the services file that is built as part of stage 1, but I was trying to avoid that!
I'm using the very latest TVHeadEnd on OpenELEC, so I don't think it's that... Like I say I think it's the build process ignoring what's in the services output file from TVHeadEnd.
Cheers
Will.