Bueno, creo que al final lo he solucionado sin tener que utilizar ningún controlador Pages, ni nada parecido, tan sólo tocando el archivo routes.php.
Lo que no se es la razón por la cual antes no funcionaba y ahora sí.
Os pongo el routes.php, tal y como lo tenía antes:
Cita: $route['default_controller'] = "index";
$route['404_override'] = '';
$route['en/index'] = "index";
$route['es/index'] = "index";
$route['en/prueba_en'] = "about";
$route['es/prueba'] = "about";
// example: '/en/about' -> use controller 'about'
$route['^en/(.+)$'] = "$1";
$route['^es/(.+)$'] = "$1";
// '/en' and '/es' -> use default controller
$route['^en$'] = $route['default_controller'];
$route['^es$'] = $route['default_controller'];
Lo he dejado finalmente así y parece que funciona:
Cita: $route['default_controller'] = "index";
$route['404_override'] = '';
$route['en/index'] = "index";
$route['es/index'] = "index";
$route['en/prueba_en'] = "about";
$route['es/prueba'] = "about";
// '/en' and '/es' -> use default controller
$route['^en$'] = $route['default_controller'];
$route['^es$'] = $route['default_controller'];
O sea que borrando las dos líneas:
Cita: //$route['^en/(.+)$'] = "$1";
//$route['^es/(.+)$'] = "$1";
se ha solucionado.
Debo suponer que a pesar de que
Cita: $route['en/index'] = "index";
$route['es/index'] = "index";
$route['en/prueba_en'] = "about";
$route['es/prueba'] = "about";
aparecían por delante, finalmente CodeIgniter tenía en cuenta las líneas posteriores.
En fin, de momento todo OK creo, aunque tendrá que seguir comprobando que no hay algún otro fallo.
Saludos y gracias por todo, os debo una.
Por cierto, os dejo karma.