Hola:
A setTimeout solo puedes pasarle una cadena, así que deberías aplanarla con el método join() de los arrays, o pasas el nombre como cadena y lo referencias en tu función rotar como un objeto (atributo) del objeto window
function rotar(array) {
miArray = window[array];
...
y...
setTimeout("rotar('+arrayimagenes+')",5000);
No lo tenías bien puesto (faltaba cerrar un paréntesis... y tal vez te interese más usar setInterval (solo haces la llamada una vez)
Saludos