I have had success using Pathname.define_context in
myocamlbuild.ml for this kind of thing; if you put the directory containing your new implementation first it will get picked up as desired, e.g.
Pathname.define_context "ocaml/bytecomp" ["src/ocamljs"; "ocaml/parsing"; "ocaml/typing"; "ocaml/utils"];
in my ocamljs tree, where I need to replace bytecomp/translobj.ml.
I'm under the impression that the include tag is just a global way of doing Pathname.define_context, so it seems like if you get things in the right order you should be able to make that work too, but I have not tried it.
Jake