Non è un problema di float, i clear ci sono e vanno bene, è il caption che sfora, poiché le dimensioni del testo superano l'altezza impostata, prova ad assegnargli un centinaio di pixel o quanti ne servono per il testo più lungo (e alto) e il div page si estenderà a inglobarlo