Without the code fro teh "DisplayText" method, we have to guess - but I'd bet it has to do with the "+=" part:
RxString += serialPort1.ReadLine();
Given that the DataRecieved event is handled on a non-UI thread, if your DisplayText method is using controls (as I would assume it does or you'd get cross threading errors) then there is a good chance that the UI thread is also modifying RxString at the same time - this is dangerous and can lead to all sorts of intermittent weird problems.
I would suggest that at a very minimum, you need to look at making all your code thread safe.