как видите, даже среди носителей разницу между этими словами улавливают не все.
поэтому если вы желаете выбрать слово для определения состояния выбирайте "замерзнуть"
если же вас интересует разница и значение то могу и объяснить.
Россия не самая теплая страна, поэтому для каждого уровня воздействия холода есть свое название.
по порядку основные три -"озябнуть""продрогнуть""закоченеть" все эти слова применяются для выражения "замерз" и уточняют насколько замерз.
озябнуть можно даже когда тепло
вы прыгаете в прохладную воду, ваша кожа покрылась пупырышками - вот вы и озябли.
то же самое: солнечное утро, ветер, тень вы стоите в тени вам зябко
озябнуть означает что человек не замерз - мерзнет только кожа
продрогнуть
ну тут совсем просто -20, стоишь под фонарем зуб на зуб не попадает. вот и продрог.
закоченеть
ну тут тоже понятно от длительного пребывания на морозе человек замерзает настолько что ему трудно двигаться. человек промерз, закоченел
суммируя вышесказанное : зябнут когда зябко, мерзнут когда холодно.