You have nothing to stop the byte data being equal to the stop or start marker. So I would expect it to jam up at any speed.
he reason that I ask this is because the data that I send only ever has values between 0 - 16 from this line:
However note that in Processing the draw function is not quite like the loop function as it only gets called 25 times a second not as fast as possible like the loop function.Try timing how long it takes your Arduino to read a frame. Sending data faster and it it working does not make sense unless it is taking too long to do the stuff on the Arduino side and the input buffer is overflowing.
Incidentally in the processing sketch if I limit the values to 0 - 8, the sketch seems to run fine even at 115200.
That points at the display part taking too long before the next lot of data comes along.You can slow down the rate that Processing kicks out the data by using the frameRate call:-https://processing.org/reference/frameRate_.htmlSeems like the default rate is now 60 times a second not 25 like it used to be.