txtEntries.Text = txtEntries.Text + participantA + Environment.NewLine;
... This line isn't working because you are trying to concatenate a string array (participantA) directly into a string property (txtEntries.Text). They are fundamentally different objects, so you can't do this.
You have to access each element of participantA directly, so it would look something like this:
txtEntries.Text = txtEntries.Text + participantA[0] + " - " + participantA[1]+ " - " + participantA[2] + Environment.NewLine;
As for your undo button, since you are adding each partipant with a new line, you can search for the last newline and take everything before that. So in your undo function, put this:
string oldText = txtEntries.Text;
txtEntries.Text = oldText.Substring(0, oldText.LastIndexOf('\n'));
Environment.NewLine actually gives you \r\n (which is a carriage return and a new line feed), which is why I use LastIndexOf to search for the last line feed. I used substring to take everything between index 0 and the last line feed.
Hope this helps!