Simultaneous Serial reading and writing
You can indeed simultaneously read and write through the serial port. At
the hardware level, the serial port (the UART) is a transmitter and a
receiver, which are almost independent. At the software level, they are
both handled through interrupts that read from / write to a software
buffer.

There is, however, a limitation you should be aware of: the software
buffers are not large, typically 64&nbsp;bytes on AVR-based boards. If
you try to write too much too often, the output buffer will fill out,
and then all subsequent writes become blocking, and run as slow as the
serial port itself. If you receive lots of data and do not read it soon
enough, the input buffer will overflow, and you loose some data.

From your description of your issue, it would seem you are hitting the
limits of both buffers. You Serial.println() too much, too often. Then
these write operations take too long and, in the meanwhile, you do not
Serial.read(). Since your PC is not waiting for you to
Serial.read(), your input buffer eventually overflows, and you only
get slightly more than a buffer worth of characters.