You can find the answer to this question in the chapter 8 of the book Manuale di linguistica e filologia romanza by Lorenzo Renzi e Alvise Andreose (Il Mulino, Bologna, 2015):
Il passaggio dal latino alle lingue romanze ha portato alla perdita di uno dei tre generi del latino, che accanto al maschile e al femminile possedeva anche un genere neutro. Ora il neutro è ovunque scomparso, e le parole che in latino erano di questo genere sono state riclassificate tra maschile e femminile. Per es., mare, neutro in latino, diventa femminile in francese (la mer), maschile in italiano (il mare); il latino tempus diventa, certo per influenza della desinenza -us, maschile in tutte le lingue romanze. Inoltre dal plurale delle parole latine neutre che finivano in -a sono derivate spesso nelle lingue romanze delle forme femminili singolari: così dal lat. FOLIA (pl. di FOLIUM) 'foglie' > it. foglia, fr. feuille, sp. hoja, pg. folha, rom. foaie.
Anche il romeno partecipa a questi fenomeni, ma non ha perduto del tutto il neutro, che continua regolarmente, accanto al maschile e al femminile. [...] Si noti che anche l'italiano ha delle parole che continuano bene, anzi ancora meglio del romeno, il neutro tardo latino. Sono le forme il braccio (<BRACHĬUM), le braccia (<BRACHĬA);
l'osso (<OSSUM per il classico OS), le ossa (<OSSA); il legno (<LĬGNUM), le legna
(<LĬGNA), poi divenuto la legna in quanto il pl. in -a è stato interpretato come singolare (vd. sopra), ecc. Ma in italiano queste parole costituiscono
una categoria chiusa, che contiene pochi elementi e non può accoglierne degli altri, cosicché possono essere considerate come dei fossili che sono testimoni di uno stato passato della lingua. In romeno, invece, [...].
My translation:
The transition from Latin to the Romance languages led to the loss of one of the three genders of Latin, which, alongside the masculine and feminine, also possessed a neutral gender. Now the neuter has disappeared everywhere, and words that were of this genre in Latin have been reclassified between masculine and feminine. For instance, mare, neutral in Latin, becomes feminine in French (la mer), masculine in Italian (il mare); the Latin tempus becomes, certainly by influence of the ending -us, masculine in all Romance languages. Furthermore, from the plural of neutral Latin words ending in -a, singular feminine forms are often derived in Romance languages: thus from Latin FOLIA (plural of FOLIUM) 'foglie' > It. foglia, Fr. feuille, Sp. hoja, Pg. folha, Rom. foaie.
Romanian also participates in these phenomena, but has not completely lost the neutral, which continues regularly, alongside the masculine and feminine.
[...] Note that also Italian has words that continue well, even better than Romanian, the neutral late Latin. They are the forms il braccio (<BRACHĬUM), le braccia (<BRACHĬA);
l'osso (<OSSUM for the classic OS), le ossa (<OSSA); il legno (<LĬGNUM), le legna
(<LĬGNA), which later became la legna as the plural in -a has been interpreted as singular (see above), etc. But in Italian these words constitute
a closed category, which contains few elements and cannot accommodate others, so that they can be considered as fossils that are witnesses of a past state of the language. In Romanian, on the other hand, [...].
Italian uovo comes from neutral late Latin ŏvum, which has plural ŏva, so the plural uova is an instance of the fossilized form which Renzi and Andreose refer to.