Did you try to use built-in project in python? I am not sure whether project works for DG functions in different meshes with DG functions.
Let's simplify the problem. Suppose we have u1 in mesh1 (coarse) which is DG (degree k), and u2 in mesh2 (e.g., uniform refinement of mesh1) which is also DG (degree k). Then how can we obtain the correct interpolation/projection in FEniCS? i.e.,
interpolate u1 to u1_2 in mesh2
project u2 to u2_1 in mesh1
As far as I know, direct application u1_2 = interpolate(u1, V2) where V2 = FunctionSpace(mesh2, 'DG', k) does not work. Basically, the problem is similar to your situation, the function evaluation of DG function at interface causes a problem (it enforce the same value at that point). By the way, if we check u1(p) where p lies on the interface, then it gives us a value (although this should not be true since u1 is not well-defined at this point).
In paper, interpolate are straightforward (just go cell by cell in mesh1 and compute the values in children cells). But is there already a method to do this job in FEniCS?