WindowsFormsHostが動的に作成・削除される状態で、メモリプロファイラーなどで見ると、削除したWindowsFormsHostが解放されずに残ってしまって、メモリリークを起こしていました。
対処法を調べたところ以下の方法で改善しました。
リンク先が消えてしまっても大丈夫なように一応書いておきます。
private void Window_Closed(object sender, EventArgs e)
{
object winFormsAdapter = typeof(WindowsFormsHost).GetProperty("HostContainerInternal",
BindingFlags.GetProperty |
BindingFlags.NonPublic | BindingFlags.Instance).GetValue(host,null);
if (winFormsAdapter is IDisposable)
((IDisposable)winFormsAdapter).Dispose();
host.Dispose();
}