Я бы начал с некоторого профилирования памяти в вашем приложении, чтобы убедиться, что элементы, которые вы удаляете из этих списков (что, как я полагаю, происходит из-за того, как написано ваше сообщение), действительно правильно выпущены и не зависают в разных местах.
О каком снижении производительности идет речь и о какой операционной системе?Если я помню, GC будет работать, когда это необходимо, а не сразу или даже «скоро».Поэтому диспетчер задач, показывающий большое количество памяти, выделенной вашему приложению, не обязательно является проблемой.Что произойдет, если вы загрузите компьютер с более высокой нагрузкой (например, запустите несколько копий своего приложения)?В этом сценарии память восстанавливается быстрее или у вас заканчивается память?
Надеюсь, ответы на эти вопросы помогут вам указать верное направление.