Me he dado cuenta que estaba cometiendo un error con el PHP, porque había puesto los argumentos de la función mal, pero en el javascript si que tengo un problema que es por falta de desconocimiento.
Resulta que en la función de abajo, si pongo más de un + solo me sustituye el primero, pero los demás no.
Código:
function do_editar(id, name, field, tabla) {
var x;
x = document.getElementById(field).value;
x=x.replace('+','<mas>');
x_editar(x, id, name, tabla, do_editar_cb);
}