il codice è abbastanza lungo e non sono stato li ad analizzarlo tutto, inoltre non conosco MapBox, ma ad un occhiata veloce mi sembra un problema abbastanza comune, le variabili all'interno della funzione onclick vengono elaborate durante l'esecuzione della funzione non alla creazione della funzione stessa. In altre parole mi pare di capire che il metodo eachLayer viene richiamato tante volte quanti sono i marker sulla mappa, di conseguenza quando viene scatenato il metodo click, il metodo eachLayer è già stato richiamato n volte e le variabili al suo interno sono state di volta in volta sovrascritte, questo significa che al click fai sempre riferimento all'ultimo valore delle variabili, quindi sempre all'ultimo contenuto delle infowindow.