Just looked at the firmware you linked, it has #define DIODE_DIRECTION COL2ROW in config.h which from the comment above it means the + is on the column end, note in the linked guide the black bars are facing away from the switches while on your board the white bars are facing the switches so you need ROW2COL. There is no normal there is only whatever the board you're programming has
I also see that you have done the matrix in 3dwf.h but the top version does not show the physical layout it still shows the matrix layout and this is the part where my head starts head to hurt. But then I see you've done the layout in keymap.c in the same layout so maybe that should work? You'd need someone who knows QMK to confirm.
I then looked at your keymap, the "include Finnish" was enough to say that this wasn't going to make much sense and sure enough -FI_ keycodes. A couple of things I did find were:
K46 doesn't exist in the spreadsheet but it's in 3dwf.h
KC_P1 is in keymap.c twice
KC_H is in keymap.c twice
FN in the spreadsheet has became KC_SPACE in keymap.c (bottom full line), would be KC_APP (right click menu) on a normal board.
There is a problem with this though - you need to have the right amount of keycodes for the number of keys defined and these problems mean you have an extra code so it shouldn't compile.
The bigger problem is that none of this would make it restart, it just shouldn't work perfectly (if at all) Maybe the old controller chip is somehow drawing power through it's IO pins eventually causing it to draw too much and restart? It has no ground so not sure how that would work, again I would just expect it to short something and output random keys, or prevent them outputting. It's a huge chip too so not sure how you would remove it - maybe the legs are raised enough to cut them off along the edge?