Well you have to remember that when reading from a com port you may not get all the characters at once. Your code over writes the text of the text box with what just arrived so if you get 8 characters then 10 more your text box will show only the last 10 because you have coded it to do that.

You should buffer incoming data until you have a complete transmission. Usually you would look for a delimiter or terminator character to know when you have the full data of the transmission and can process it.
Code:
Static InBuffer as String

	InBuffer=Inbuffer &  MSComm1.Input
This will cause data that arrives to be appended to the inbuffer variable rather than replacing what was last received.
Of course at some point you most likely will need to either clear the data from the var or remove a portion of it. Can't say for sure without details of the communications being done.