Primer error en tu receptor
int led =(int)Serial.read() -48;
en realidad debe ser char o byte en lugar de int
byte led = Serial.read() -48;
empieza por ahi
Esta línea no hace nada
analogWrite(LedPin,xxx); // No toma ningun valor-
xxx no tiene nada asignado
asi que sera un 0 en el pn 3 por siempre.
Comentala porque si envias desde la pc por VB.NET 1 2 o 3 solo quieres esos comandos por ahora.