' When Inputting Data, Input 2 Bytes at a time
MSComm1.InputLen = 5
So, why is the length 5?
Private Sub MSComm1_OnComm()
This event fires when there is some serial data to read - not just when there is a complete packet. It is up to you to read and store data until a complete packet (or more) has arrived.
If MSComm1.Input = "<" Then
The Input field contains all the data that has arrived so far, NOT just one character.
You need to define a String object that you append any serial data to. When all the available data has been read, you need to see if that String object contains a < and a >. If it does, extract the portion up to the >, then strip off the first character. What will be left will be the packet contents.