I wouldn't copy the entire <body> tag, just the part you want to insert into the second tree:
from bs4 import BeautifulSoup
import copy
html_in = """
<body>
<i>good stuff</i>
</body>
"""
html_out = """
<body>
<div id="body">FILL_ME</div>
</body>
"""
soup_in = BeautifulSoup(html_in,"html.parser")
soup_out = BeautifulSoup(html_out,"html.parser")
i_copy = copy.copy(soup_in.i)
soup_out.find("div", id="body").string.replace_with(i_copy)
print(soup_out)
# <body>
# <div id="body"><i>good stuff</i></div>
# </body>
But you can do it after copying the entire <body> tag, as long as you don't try to call manipulation methods on the copy.
soup_copy = copy.copy(soup_in)
soup_out = BeautifulSoup(html_out,"html.parser")
soup_out.find("div", id="body").string.replace_with(soup_copy.i)
# <body>
# <div id="body"><i>good stuff</i></div>
# </body>