Tienes razón.
El problema está en que $DEL va guardando los delimitadores que encontramos, y en el caso de 'verbatim*', lo que estamos indicando, en la segunda parte del biestable, es que busque por un delimitador '\end{verbatim*}'. Es decir, queremos que finalice el rango con una 'm' opcional seguida inmediatamente por la llave de cierre... y eso no se cumple en todo el resto del archivo. Por eso, desde que captura el primer 'verbatim*', hace los cambios a todas las líneas.
La solución es indicar que ese asterisco es literal, no un comodín de un patrón.
Cambia la línea 48 a:
Using perl Syntax Highlighting
if (/^\\begin\{($ENTORNO)(?{ $DEL = "\Q$^N" })\}/ .. /^\\end\{$DEL\}/) {
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
y así, en $DEL guardamos la versión "escapada" del delimitador, y la segunda parte del biestable sí que encuentra la fila del final del rango.