mein Bascom ist aus mehreren Gründen stinkesauer mit deiner source

dim new, new1, .. as byte nimmt er nicht, das braucht er einzeln

SHIFT hat keinen output-parameter. das Feld wird geshiftet, bleibt aber, wo es ist.
wenn du sowas willst wie
Tmp = Shift New , Left , 4
muttu schreiben:
Tmp = New
Shift Tmp, Left , 4
Welche Art Checksum ist das ? (nur informativ)

Fehler Pakete(2)
Schau mal, ob der Sender nicht vielleicht <CR><LF> nach den 8 byte dazusendet.
Egal, überprüfe den input:
nach
inputbin pakete(1), 8
machst du
Print str(pakete(1)) ;str(pakete(2)) ;...str(pakete()
dann siehst du, was effektiv drinsteht und kannst dir vielleicht einen Reim drauf machen