Правильны все приведенные Вами варианты переноса. Правило таково: группа неодинаковых согласных букв в середине слова, входящих в корень или образующих стык корня и суффикса, может быть разбита переносом любым образом.
Правильный перенос: програм-мный. Одно из основных правил переноса: разбиваются переносом удвоенные согласные, входящие в корень или образующие стык корня и суффикса. Другие допустимые переносы: прог-раммный, про-граммный. Слово программа может быть перенесено такими способами: про-грамма, прог-рамма, програм-ма.