Silverlight: BitmapImage de la secuencia arroja una excepción (falla catastrófica (excepción de HRESULT: 0x8000FFFF (E_UNEXPECTED)))

Necesito cargar dinámicamente muchas (a veces cientos) de imágenes en miniatura. Por razones de rendimiento, necesito hacer esto en un número limitado de solicitudes, estoy usando una sola solicitud / respuesta para las pruebas. Estoy enviando los datos binarios para las imágenes en la respuesta y los estoy cargando en BitmapImage's usando un MemoryStream. Esto funciona correctamente hasta que cargue más de aproximadamente 80 miniaturas, luego obtengo la excepción de Falla catastrófica. Para asegurarme de que mis datos no estaban dañados, intenté cargar una BitmapImage varias veces con la misma matriz de bytes y se bloquea después de aproximadamente 80 cargas.

Aquí hay una muestra de cómo se carga la imagen desde la matriz de bytes, se sabe que la matriz de bytes tiene datos de imagen válidos (png):

private BitmapImage LoadImage(byte[] imageData)
{
    BitmapImage img = new BitmapImage();
    MemoryStream stream = new MemoryStream(imageData);
    img.SetSource(stream); // Exception thrown here after too many images loaded.
    return img;
}

Luego uso BitmapImage como fuente para un elemento de Imagen en la página, pero el error ocurre enimg.SetSource(...) línea arriba.

AgregandoGC.Collect() al bucle donde estoy cargando imágenes en miniatura me permite cargar algunas imágenes más, así que creo que esto tiene algo que ver con la administración de memoria, pero no sé qué puedo hacer para solucionar el problema.