il problema che lamenti è dovuto al fatto che i contenitori in questione hanno dimensioni diversa in altezza.
volendoli flottare, se il contenitore che torna a capolinea "si scontra" con l'altezza di un precedente contenitore, questo si blocca e non va a capolinea.
i contenitori a seguire si comportano di conseguenza e creano nuove linee.

per risolvere elegantemente puoi utilizzare flexbox con proprietà flex-wrap, altrimenti devi fare molta attenzione affinché tutti i contenitori abbiano altezza identiche.