Ok then, let's try digging deeper to see where the problem is really happening.
Here's a copy of arduino-core.jar which prints the number of bytes it's actually getting for each serial event.
https://www.pjrc.com/teensy/beta/arduino-core.jar
MD5 = 32c3ae4c34c320b0d16f2ba16738568d
Here's how it looks when I run it.
View attachment 12200
To use this, download the JAR file. I recommend running "md5 arduino-core.jar" in a Terminal window, to make sure you have the right file.
Quit Arduino, if it's running. Control-click Arduino and click "Show Package Contents". Then navigate to Contexts/Java. Replace the copy of arduino-core.jar with this one.
When you run Arduino again and open the serial monitor, you should see the messages printing in the console panel. The big question is whether Arduino on your Mac really is receiving all the incoming bytes and somehow losing them internally, or perhaps they're not ever coming into the serial event handler. This test should let us know.
done
md5 check is correct.