Merging a surface/brep into a brep - Brep Topology

Say I have one planar brep with multiple faces like so -

I wish to merge another surface into this brep and make a brep face out of it (green shape overlaps the brep) such that it becomes a part of the original planar brep - it becomes one of the brep faces thereby modifying the brepface list and indices etc.

  1. I want to know the best approach to merge this surface into the brep
  2. While I am doing this, is there a way to maintain the UserDictionary values associated with the original brep faces? and also transfer over the UserDictionary from the surface to the newly formed brep face?

I have tried Brep.Append but that just adds another fully overlapped brepface and doesnt shrink the orginal brep face it overlapped with. I want to actually split the brepface and create two different faces out of it.

Did you try the Brep.Split method?

I did. I am currently using the planar surface to split the brep and use the results along with the planar surface to get the final brep (Brep.CreateBooleanUnion).
But this approach still loses the UserDictionaries and I was hoping they would transfer over somehow apart from the new brepface.