Non ho capito bene l'utilità di creare un meccanismo per la gestione delle liste quando ti è esplicitamente richiesto dalla traccia di restituire una LinkedList...
Io avrei fatto l'implementazione in modo leggermente diverso (avrei tenuto in memoria solo 2 liste: la più lunga trovata fino a quel momento e quella relativa alla colonna analizzata ad ogni iterazione), ma visto lo scopo didattico credo sia solo un peccato veniale...

Volendo seguire l'algoritmo risolutivo che hai scelto devi:
- creare un array di liste
- iterare sulle colonne (ATTENZIONE: i tuoi due cicli su "j" e "i" iterano entrambi sulle righe, controlla la condizione di uscita)
- per ogni colonna, inizializzare l'elemento corrispondente dell'array di liste (che altrimenti sarebbe null)
- per ogni colonna, iterare su tutte le righe, andando ad inserire nella lista associata alla colonna i numeri pari
- conclusa l'analisi della matrice, iterare sull'array delle liste, andando ad identificare la più lunga
- restituire la lista trovata

Non ti posto codice per darti modo di pensarci su, eventualmente segnala se hai dubbi sulla logica o sulla implementazione dell'algoritmo