How to display a image and some text instead of unset a field using form_alter hook?
Using unset() with form elements is always wrong.  

To avoid the form element is shown, just set its #access property to FALSE or to the value returned from a function, and that form element will not appear in the form, or it will appear basing on what returned from that function.
Once you make it not accessible from the currently logged-in user, you can add the form elements you need, not forgetting to add the form submission handler to handle the input given from the users for those form elements you add.