Hola Enzo,
esos caracteres salen codificados de dicha manera luego de aplicar array_a_utf8, no es algo que agregue el json_encode y por lo tanto no creo que el modificador tenga algun tipo de incidencia.
Respecto del POST… en mi experiencia tuve que cambiar
curl_setopt($conexion, CURLOPT_POST, true);
por
curl_setopt($conexion, CURLOPT_CUSTOMREQUEST, 'POST');
de otra forma siempre tenia problemas con los envios, yo probaria con este cambio primero y luego revisaria lo del json_encode.
Saludos