Pero los índices empiezan con 0:
Cita: Elements in this collection can be accessed using an integer index. Indexes in this collection are zero-based.
Véase:
http://msdn.microsoft.com/en-us/libr...arraylist.aspx
Por lo que si tienes 2 elementos (Count = 2), los índices serán 0 y 1.
Además, fíjate que en el bucle siempre vas a comparar sólo con el primer elemento. Ya que si coincide devuelves un valor, y si no coincide (aún antes de comparar con los demás elementos del ArrayList) muestras el mensaje de error y devuelves -1.