Du wirst keinen String bekommen, sondern immer nur ein einzelnes Zeichen.
Code:
 Empfang_string = Waitkey()
Damit gibt's auch nix mit den nachfolgenden Stringbefehlen zu verarbeiten.
Eine ISR soll so kurz wie möglich sein und nicht noch zwei weitere Subs aufrufen.
Code:
Empfangen:
  Empfang_string = Waitkey()                                'Zeichen aus dem Buffer einlesen
  Verarbeitung
  Setzen
  Toggle Portb.0
Return
Also Flag in der ISR setzen und per Hauptschleife darauf reagieren.