Why are manually placed paragraph tags being removed?
I can't say for sure. I found one support thread which suggested it was being removed by the editor. My own testing deems this to be untrue.
My local development server also doesn't appear to have any of these problems, except for the insertion of paragraph tags. After removing the
wpautop filter on that local server, there are no formatting issues to be spoken off. So for some servers simply removing the filter may suffice. So again, I can't be sure why.
How to disable the auto insertion of
<p> tags, and prevent manually placed paragraph tags from being removed?
As mentioned in the question to disable the auto insertion of p tags, you can add this php code to your theme. Or you can make a plugin. Where you want to disable the insertion matters for where you place the code.
It is a simple matter of this though:
remove_filter( 'the_content', 'wpautop' );
To prevent the removal of tags in html code content, you can wrap the paragraph body with
<div><p>My super duper long paragraph</p></div>
<div><p>My small paragraph which happens to be even longer.</p></div>
This thread where I found the answer, suggests that you can wrap two paragraphs in one div tag; my testing, however, proved this an ineffective solution.