Hola rbczgz.
Sin profundizar demasiado en el post, y sin estar familiarizado con array_slice, veo que cuando utilizas dicha función:
Cita: $arraysecundario = array_slice($arraysecundario, 0, $tamanio);
le pasas el 0 como segundo parámetro, y eso hará que siempre empieze al principio del array.
Miírate bién la documentación de esta función. Ya dije que no la conozco bien, pero leyendo por encima me parece que puede ser la causa de tu problema.
Saludos.