Allora per quanto riguarda le linee di questo tipo (cognomiordinati[k]=copiaElencoClienti[k].cognome)nelle funzione scambia, le devi mettere in questo modo: cognomiordinati[k]=copiaElencoClienti[k].cognome[k].
Poi alla fine del ciclo for dove usi gli scanf nella funzione "caricaDati" devi pulire il buffer.