Two way serial communication between two boards

OK.
So you discovered that you need to control when stuff is sent, not just send lots of stuff over the serial port as fast as it will go, that's an important lesson. Only send stuff when some condition has been satisfied, which might be a time period or a button being pressed or some other thing that means it's appropriate to send something. For testing purposes a time period is a good place to start.

Look in the IDE:
file > Examples > 02 Digital > Blinkwithoutdelay
Understand what that does and use what you learn to control sending data instead of flashing an LED.
Robin has another tutorial that is also relevant, it is:

The 'several things at a time' in your case are sending and receiving at the same time.

What I hope to see from you is transmit code that sends stuff on some time interval that you have chosen without any use of delay to make the interval, and without the sending part holding up the processor from doing other stuff. For extra points I suggest you make the built in LED flash at a rate that is independent of the timing for sending data and independent of when data is received. For extra extra points put the LED flashing code in a separate function called from loop().