1) You will need to write hit-testing code to be used in the mouse click event. You need to check the screen location of each of your objects to determine which (if any) of the objects was "under" the pointer when the mouse was clicked. From there you can display the appropriate context menu for the functionality you want to implement.
2) If you just want to save the information to re-open by the app later, simple serialization to XML or Binary will work fine. If the intent is to make user-readable content, you will need to write a simple csv export or if the output needs to be more complex, a custom serializer.
More Info:
Hit-testing is the general term for evaluating what object has been clicked on, for example, when you click in a DataGridView, hit testing logic can tell you which cell/row/column was clicked on. Many Widget classes, including DataGridView, have a HitTest method which will return an object which provides this information. If the flowcharting tool uses custom drawing for the connected objects, then you will have to do the work of using the click coordinates to determine what element in the flowchart has been clicked on.
http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.hittest.aspx documents the HitTest method for the DataGridView.
http://www.codeproject.com/KB/list/CSharpHitTest.aspx is a sample program on CodeProject which does hit testing logic in a ListView.