You are using the CKEditor, right? (WYSIWYG Editor in the admin?)
If so, CKEditor removes empty elements. Say you have
<span><i class="icon" /></span> CKEditor will remove that whole thing. YOu need to have something like
<span><i class="icon"> </i></span>
A non breaking space will stop it from being removed. It usually doesn't remove it the first time you save, its the second time. I think it also will remove duplicates, that might be why your BR's are being removed, but I usually type my code in notepad and paste in the editor and save once, and it's usually good.
I think you can disable that in the config file, but I forget which setting.