Visual Basic 2008 & Arduino Uno

The 'float(value)' are of course failing.

Well, of course they are. The float macro is a crutch for people that don't understand casts. It evaluates to

    if(count == 1) a = (float)value;

which, of course, is nonsense, since a String object can not be cast to a float.

You could use the value.toCharArray() method to extract the char array from the String object, then use atof() on the char array.