Crocosmia is the kind of gentle, unassuming show that could easily be overlooked in the hubbub of the Fringe. On the day I saw it, there were just seven other people there, and one of them was the director. By the end, two people were in floods of tears – and one of them was me.

It's difficult to tell when we first meet the Brackenberg siblings – 10-year-old twins Finley and Sophia, and Freya, seven and three quarters – whether their parents are still alive, or whether they are already playing out memories of happy times before their parents' fatal car crash. The mood is just a bit too sentimental: Jeffrey and his wife – whose roles are cleverly swapped between the same two actors who play the twins – never scold their offspring, only indulge them, while displaying towards each other the kind of rose-tinted romanticism that rarely exists outside old Hollywood and children's imaginations. Following their deaths, the children are shunted to an orphanage, and then to a new home; throughout, their only refuge is in each other – and those endlessly active, resourceful imaginations.

These are children who blithely re-enact happy memories using hunks of Battenberg cake, who create a beloved pet fish out of a chunk of carrot, and who use a running shoe and a perfume atomiser to represent the well-meaning people who finally adopt them. If the quaintness of the puppetry makes the production sound sentimental, it is at times. But that is balanced by an awareness of the cruelty of children, as the twins gang up on gullible Freya, and by how curiously matter-of-fact they can be, even in the face of the unimaginably awful. It makes the scenes in which they reflect on their prospective parents, and prepare for Freya's eighth birthday party, unbearably poignant – the high points in a beautifully directed, lovingly acted and absorbing show.