With the two lines of code you show, they are executed one right after the other. Some devices require a little time to process the data before sending a reply.
Also you have a DataReceived event which should capture the data being returned from the device when it does. So the second part of the problem code is redundant anyway.
[edit]
Add following right under
Dim open As Boolean
to your list of declarations, it is missing from your code.
WithEvents SerialPort1 As New SerialPort
Delete these two subs, they are not needed.
Private Sub Port_cmbox_SelectedIndexChanged
Private Sub Baud_cmbox_SelectedIndexChanged
Remove the message box line.
Private Sub SerialPort1_DataReceived(ByVal sender As Object
MessageBox.Show(SerialPort1.ReadExisting())
I tested the code, it should work for you now.