Well done; you were right I *wasn't* using...
float2 textureCoordinates : TEXCOORD0;
...within the vertex shader.
I did a quick hack and added it to another existing value, recompiled and it magically appeared.
As I was only using the .x part of the float2 it appeared as...
textureCoordinates x = 5.000000000, y = NaN float2
So 'NaN's basically could mean a variable is unused.
float bitWidth : TEXCOORD2;
...turned out to have a value of...
bitWidth 00.000000000 float
...because though it *was* being used within the vertex shader it was within a 'if' that wouldn't be entered.
Another quick bodge to allow the entering of the 'if' showed the value as...
bitWidth 33.000000000 float
So a 0.000000000 value could/may mean that though a variable is being used within the vertex shader it may not be called (so you won't see the true value).
I wonder if this behaviour is written down anywhere as I can't remember reading this or seeing it before?
Many thanks for your help Polarist; have a good weekend.