I think that this has to do with how the insert and update server behaviors evaluate the values, there is a string that is created of the values that uses this character as the separator. Then these values are transformed into an array like this:
$WA_fieldValues = explode("|", $WA_fieldValuesStr);
Since it is just looking for this vertical bar character it will find the one you add and break the other values.
You should try either replacing the character with the encoded value for it '%7C' or you can try wrapping the php function that does this for you around the value in the insert server behavior like this:
htmlentities(<the value>)