sarebbe utile che ci fornissi un link al file su cui stai lavorando, e per altro il codice che fornisci non è completo (dov'è il css per gli elementi header, nav e figure?). Non riportando nemmeno tutto il testo dell'esercizio, non è chiaro se puoi ad esempio creare un box contenitore per gli elementi nav, main, figure. Visto così ad occhio mi sembra chiaro che flex-direction: column sull'elemento contenitore disponga in colonna il contenuto, ma ti segnalo che interpretare l'allineamento di un contenuto con la proprietà float è un errore, perchè la proprietà non si applica agli elementi flex item.