@UKHeliBob I've just finished studying the examples given on the Serial input basics thread you recommended. The thread has been consolidated into a new thread and it sure is worth reading-- thanks so much for recommending it.
@Robin2 has a specific example using start- and end-markers that is particularly suited to what I was trying to do.
The code posted under the example works perfectly with my VB app. For those who might read this in the future, the only thing that has to be changed on the VB app code posted earlier is reflected below on the last line in this snippet:
Private Sub SendMessageToArduino(ByVal Message As String)
CurrentMessage = Message
If ArduinoConnection.IsOpen Then
ArduinoConnection.DiscardInBuffer()
ArduinoConnection.Write("<" + Message + ">")
...this adds the "<" ">" marks to the message and there is now no need to send the vbLf since the start and end markers make it clear to Arduino what is being sent as a message.
I will re-visit my original code to try to understand exactly why it doesn't work, but at least I can now move forward.
A big thanks to @Robin2 for making this possible.