Hard to say without hardware debugging. Do you have a scope or logic analyzer? Is the Mega operating at the correct speed? Do you have a way of testing that? If the Mega is running at around 11% slow it would be late sampling each bit, with the result that the 9th bit (8th data bit) could be sampling the stop bit instead.
Just as a test, try tweaking the baud rate on the Mega. Eg. instead of 9600 try 10000. Or more even, like 10600.