Are you using RegEx to do this?
It works for me if I just do a simple Replace([Field1], '|', ' ')
If you are using RegEx it will not work because '|' means something to RegEx; it's a special character which means 'or'. So if you are entering REGEX_Replace([Field1], '|', ' ') you are giving it a nonsensical instruction. To make RegEx recognize '|' as a non-special character you must use the escape character ('\') in front of it; REGEX_Replace([Field1], '\|', ' ')
I hope this makes sense and works for you :-)