¿?¿?¿?¿?
Lo he hecho por curiosidad y veo que sigue funcionando correctamente. No tiene el comportamiento extraño que comentas.
Para establecer un alto a cada Item de 200dp he añadido en el constructor de "SpeechView", justo al final esta línea:
setLayoutParams(new ListView.LayoutParams(ListView.LayoutParams.FILL_PARENT,200));
En este caso, establezco 200 píxeles de alto para cada elemento.
Hago clic en uno de los del medio y luego hago scroll y no se abre ningún otro. (He probado varias veces y nada)
Algo estarás haciendo que se salga fuera de lo normal. Estudiate el getView del ejemplo que te puse, ya que ahí se ve cómo reutilizar las vistas.
Suerte.