I have found ans to first question also. I have hooked my function to ‘bp_after_profile_field_content’, so now all new fields I can display before ‘Save’.
I have found answer to my 2nd question. We can use Custom Loop template class bp_is_profile_edit(), it returns true if the custom function is called from the edit profile page.
Still trying to find answers to 1st and 3rd question. Please help.