have you've tried send AT command using the hypertermal? as i noticed you need two user action to send sms using hypertermal.. which is AT+CMGS="desired number"(first user action) then type a message then press CTRL+Z to send it... so this is what happen to your button action... the first click was to send the command AT+CMGS and the second click was for the CTRL+Z to send it...
1 more thing when you receive the message the at command was include into the sent message... here is my answer code to your problem...
SerialPort1.WriteLine("AT+CMGS=" & """" & "09103434639" & """" & vbCrLf)
SerialPort1.WriteLine("hii there!!!" & Chr(26))
cheers....
paperjam,ph