hello there,
first off let's look at your datreceived event handler;
static void serial_DataReceived(object sender, SerialDataReceivedEventArgs e)
you can put a whole packet into queue.
anyhow, something for you to get started on, ask questions, have fun.
cheers
ron