el error que dices no lo encontre, pero si encontre ArrayBoundsException, es decir, quieres accesar a una pocisicion del array mayor al disponible
1) creo que debes cambiar el 19 por un 13
for (locationcounter=0; locationcounter <19; locationcounter++)//this loop looks at each location in the array
2) creo que tambien debes restarle una unidad a todos las pociciones del array, por ejemplo aqui tenemos un 13 entonces lo cambiamos por 12
if (letra[locationcounter] == romans[13])
3) y para que no tengas ningun error en el casting es
System.out.println(convertirRA(new String[]{"I", "D", "I", "V", "I", "D", "I", "V","I", "D", "I", "V", "D"}));