Probiers mal mit:
stream.Read(FImages[i].data[b][0][/b], length);
Da ein dynamisches Array nix anderes ist (intern) als ein Zeiger, solltest du dem Compiler schon sagen, das er an die Adresse Schreibt auf die der Zeiger zeigt, nicht an die Adresse des Zeigers. Sonst gibts nämlich eine schöne
Exception