OK. I need to know some.
1. Which pin of LED do you connect with those ports? Anode or Cathode?
2. No problem.
3. You flip column pins again?
Note that
A. 'NumLock' LED is controlled by host, it doesn't indicate state of Num Lock layer.
B. 'NumLock' key(NLCK) just register numlock scancode to host, not activate 'Num Lock Layer'. You need Fn key on 'Function Layer' to switch that layer.
You probably need two separate keys; normal 'NumLock' key to control numpad state of host and Fn key to activate 'Num Lock Layer' respectively.
I think this is close to what you want. You can toggle Numpad layer with Fn+N(FN2+FN1) and 'N' key works as Numlock key on Numpad layer(Layer1).
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Layer 0: Default Layer
* ,-----------------------------------------------------------.
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \|Del|
* |-----------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backs|
* |-----------------------------------------------------------|
* |Fn2 | A| S| D| F| G| H| J| K| L| ;| '|Return |
* |-----------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Up |Shift |
* |-----------------------------------------------------------|
* |Ctrl|Gui |Alt | Space |Alt |Left|Down|Righ|
* `-----------------------------------------------------------'
*/
KEYMAP_ANSI(
ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS,DEL, \
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \
FN2, A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \
LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, UP, RSFT, \
LCTL,LGUI,LALT, SPC, MENU,LEFT,DOWN,RGHT),
/* Layer 1: Numpad
* ,-----------------------------------------------------------.
* | | | | | | | | 7| 8| 9| | | | | |
* |-----------------------------------------------------------|
* | | | | | | | | 4| 5| 6| | | | |
* |-----------------------------------------------------------|
* | | | | | | | | 1| 2| 3| *| | |
* |-----------------------------------------------------------|
* | | | | | | | |Nlk| 0| .| /| | |
* |-----------------------------------------------------------|
* | | | | | | | | |
* `-----------------------------------------------------------'
*/
KEYMAP_ANSI(
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,P7, P8, P9, TRNS,PMNS,PPLS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,P4, P5, P6, TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,P1, P2, P3, PAST,TRNS, PENT, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,NLCK,P0, PDOT,PSLS, TRNS,TRNS, \
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS),
/* Layer 2: Function
* ,-----------------------------------------------------------.
* | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| ~|Ins|
* |-----------------------------------------------------------|
* | | | | | | | | | | |Psc|Pus| |Delet|
* |-----------------------------------------------------------|
* | | | | | | | | | | | | | |
* |-----------------------------------------------------------|
* |Caps Loc| | | | | | |Fn1| | | |PgU|Caps L|
* |-----------------------------------------------------------|
* | | | | | |Home|PgDn|End |
* `-----------------------------------------------------------'
*/
KEYMAP_ANSI(
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, FN0, INS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,PAUS,TRNS,DEL, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,FN1, TRNS,TRNS,TRNS, PGUP,CAPS, \
TRNS,TRNS,TRNS, TRNS, TRNS,HOME,PGDN,END),
};
static const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_LMOD_KEY(KC_LSFT, KC_GRV),
[1] = ACTION_LAYER_BIT_TOGGLE(1),
[2] = ACTION_LAYER_BIT_MOMENTARY(2),
};