1) So, this is fairly unrelated to the driver itself and really more dependent upon the GUI piece and what technology you are using. If you are using the built-in Windows Forms TreeView control, then there is a Tag property on each node. You can assign the BsonElement to this Tag property so that when the user edits it, you know exactly what to apply the changes to. A deletion would mean you'd need to move to the node's parent and remove the element referenced by the subnode's Tag. e.g. node.Parent.Tag.Remove(node.Tag).
There are a gillion ways of doing this, and none really relate to the driver itself.
2) You are going to need a JSON parser to get the object into a form you can use. We have a JsonReader that can read a string of json and convert it into a document. This may take some work and some looking into as I'm unfamiliar with how to accomplish this yet. I'll try and follow up later with an example.