We consider free surface flow over two localised obstacles using the framework of the forced Korteweg de Vries equation in a suite of numerical simulations. Our main concern is with the transcritical regime when the oncoming flow has a Froude number close to unity. The flow behaviour can be characterised by the Froude number and the maximum heights of the obstacles. In the transcritical regime at early times, undular bores are produced upstream and downstream of each obstacle. Our main aim is to describe the interaction of these undular bores between the obstacles, and to find the outcome at very large times. We find that the flow development can be defined in three stages. The first stage is described by the well-known development of undular bores upstream and downstream of each obstacle, 'file second stage is the interaction between the undular bore moving downstream from the first obstacle and the undular bore moving upstream from the second obstacle. The third stage is the very large time evolution of this interaction, when one of the obstacles controls criticality. For equal obstacle heights, our analytical and numerical results indicate that either one of the obstacles can control flow criticality, that being the first obstacle when the flow is slightly suhcritical and the second obstacle otherwise. For unequal obstacle heights the larger obstacle controls criticality. 'fhe results obtained here complement a recent numerical study using the fully nonlinear, but non-dispersive, shallow water equations.