Тут вся штука в том, что атмега16 или 32 использовалась именно потому, что надо было достаточно много ног под матрицу клавиш.
328p недостаточна.
Раскладка клавиатуры в упомянутом архиве в файле customkey.h. В инициализированной структуре keyaddr. В формате "клавиша, строка, столбец".
К штатной плате припаяться, наверное, можно, отрезав дороги от разъема (НО ! я не проверял, есть ли дороги, уходящие под разъем), но тогда зачем она ? Просто разъем 1-миллиметровый +макетная плата под него не удобнее ли ?
ПС. Плат под версию на atmega16/32 я на обрезках проектов назаказывал достаточно, могу поделиться. Если даже не использовать такой контроллер, то с той платы будет удобнее к разъему паяться.