Ну, собственно, всё понятно.
transaction.replace(R.id.frame_layout, fragment)
и
.replace(R.id.homeFragment, ContentFragment.newInstance())
Ты реплейсишь фрагменты в
разные контейнеры. Поэтому они находятся на экране одновременно. Должен быть один и тот же контейнер.
Дальше правила хорошего тона:
Фрагмент(в твоем случае — HomeFragment) не имеет морального права брать активити и пихать что-то в её фрагмент менеджер. Это не его ответственность. Тем более он не имеет права закладываться, что в разметке активити есть вьюхи с определенным айди. Максимум он может скастовать активити к какому-то интерфейсу и попросить её что-то сделать:
(requireActivity() as? CallbackInterface)?.showContentPlease(your awesome content)