I'll almost put money on her body type being quite lean. The thinner children always find it harder to float.
Getting afloat is mostly to do with having a good body position, together with an efficient kick. The two are inter-related - the better her kick, the more horizontal her body position will be and keeping her face down in the water will also help enormously. The kick also needs to be sustainable for a long time, so it shouldn't be frantic and splashy, but with long legs and feet only barely breaking the surface with loose ankles as people have said. The more propulsion you get from your kick the easier it is to move on, so even though you say she can kick well, it is still something worth practising lots.
Then it should be a progressive thing: kick with a float held in front with arms outstretched (elbows straight) and face down. Then without the float (arms still outstretched) and then add the arms (but slowly, one at a time). She may find it easier to get afloat without arms as using them often compromises the streamlined shape and children often stop kicking so well when they start using their arms. So try just a few strokes at a time, arms moving slowly and without breathing and concentrate on keeping the kick going as well.
Push-glides from the side on her front are always good to develop a streamlined shape. Keep trying to go a little further and also try adding a few kicks as she begins to slow down. If she does this towards you, you can gradually move back a little each time so she has to do a little more each time to get to you (and as you get further away you can add the arms in too - but always glide first, then legs and then arms and build up slowly stage by stage).
Lots of children get to the stage on their front (- and this may be your dd's problem) where they can swim a few strokes but have to put their feet down when they breathe. They need to be able to kick, use their arms and turn their head to breathe all at once and until all those actions are virtually automatic it's too much to think about so the legs stop when you start to think about breathing and you sink.
They need to practise rolling head to the side to breath while the arm on that side is coming over. Practise arm/head action with feet on the bottom first, then practise breathing to side using one arm (on the breathing side) and holding a float outstretched with the other one. This IS a lot to think about and takes time to learn, but keeping the head low in the water when you breathe makes it much, much easier for low bouyancy people to keep going when they breathe. Also blowing the air out before your mouth is out of the water so you only need your mouth out for the intake rather than the whole blow-out, breathe-in cycle helps.
I've rambled on as usual, hope it's been some help and good luck.