Parece que tienes múltiples problemas. La variación con TIP120 y IFR610: para el IFR610, sospecho que es posible que no lo encienda completamente debido a una tensión de compuerta insuficiente. ¿Es la salida de Arduino una salida de "5V" o una salida de 3.3V? Y si es así, ¿cuál es el voltaje real? Puede ser que el IRF610 necesite una compuerta V más alta para encenderse lo suficiente como para evitar una caída significativa de la fuente de drenaje en la corriente que desea controlar.
El TIP120 se encenderá con un voltaje de control más bajo (combinado con una resistencia de base), pero es un transistor Darlington y el colector de voltaje de saturación (encendido) al emisor es un poco más alto que un solo transistor bipolar, VCE (sat. ) en el rango de 1.5 a 2V.
Básicamente, mida el voltaje en la "parte inferior" de la cadena de LED para verificar estas posibilidades.
Si su transistor de conmutación representa más del intervalo de voltaje total, entonces el LM317 tal vez no tenga una proporción suficiente del intervalo de voltaje restante para ajustarse para proporcionar la corriente que espera. Por lo tanto, estará completo y la corriente estará limitada por R1, pero no debido al rol de R1 en el circuito de retroalimentación. Al reducir R1, logras que LM317 y R1 pasen la suficiente corriente, aparentemente, pero no necesariamente con la regulación de LM317 per se.
De todos modos, esa es mi suposición.
De su pregunta no queda claro a qué se refieren los comentarios "20V" y "12V". Parece que tal vez cambió el suministro de 12 V por uno de 20 V, y luego el LM317 se estaba calentando porque estaba absorbiendo una caída de voltaje relativamente grande.