Если вы не делаете ничего необычного при загрузке изображений (например, используя самодельные загрузчики изображений или что-то в этом роде), то ГХ должен стереть их для вас, когда ничто больше не ссылается на них.
Держите ли вы где-нибудь ссылки на данные? Помните, что события и обработчики событий могут иногда «обманывать» сборщика мусора, думая, что объект все еще используется:
MyObject obj = new MyObject();
obj.TheEvent += new EventHandler(MyHandler);
obj = null;
// Now you might think that obj is set for collection but it
// (probably - I don't have access to MS' .NET source code) isn't
// since we're still listening to events from it.
Не уверен, относится ли это к вам, но, по крайней мере, я бы проверил на вашем месте.
Кроме того, если у вас есть доступ к профилировщику, такому как AQTime или аналогичный, то выполнение кода через него может дать вам несколько советов.
Вы также можете попытаться выяснить, имеет ли это значение, загружаете ли вы изображения с диска или из ресурсов, встроенных в вашу сборку.