RE:Sigue el problema (aun).
Y porque lo indexas con UPPER??? .. Porque no indexas simplemente con cREF?, lo único que haces es transformar a mayúsculas los campos para generar EL INDICE, pero si lo que deseas es mostrarlo con mayúsculas igual tendras que volver a hacerle UPPER al campo antes de desplegarlo o antes de grabarlo.
Si tu indice está con UPPER(cREF).. cuando leas tambien deberías usar el UPPER porque es muy probable que el campo con el que lees no esté todo en mayúsculas.
El guion dentro de un campo no tiene absolutamente nada que ver con tu problema, tengo muchisimos indices de Domicilios o Teléfonos u otros campos alfanumericos que tienen guiones y no tengo ningún problema.
Yo creo que deberías dejar de usar el UPPER en el indice, en todo caso si deseas almacenar el dato en mayúsculas, lo que tienes que hacer es utilizar en el GET un Pict "@!" que solo acepta datos alfabéticos en mayúsculas.