I tuoi programmi vanno in crash perché continui a deferenziare puntatori inizializzati a null.
Se non vuoi che questo si verifichi inizializza i puntatori in modo opportuno.

codice:
TNode* Punteggio(TList lista){

    /* inizializzo il punteggio con il primo della lista */
    TNode* score = lista;

    /* avanzo di un nodo per fare il primo confronto con il nodo successivo */
    lista = lista->next;

    /*posso usare direttamente lista, all'uscita della funzione lista tornerà a puntare al primo elemento */
    while(lista!=NULL){
        if(lista->info.punteggio > score->info.punteggio){
            score=lista;
        }
        
        /* l'avanzamento va fatto alla fine, altrimenti all'ultimo confronto lista varrà null */
        lista=lista->next;
    }
    return score;
}