Por lo que he visto, no estás cargando las imágenes correctamente.
Si ejecutas paso a paso la aplicación, verás que cuando cargas las imágenes ejecutas este código:
Código Delphi
[-]
for I := 0 to 3 do begin
W.LoadFromFile('casa'+IntToStr(J)+'.jpg');
FotosCasa[i] := TBitmap.Create;
FotosCasa[i].Assign(W);
FotosEdificio[i] := TBitmap.Create;
W.LoadFromFile('edificio'+IntToStr(J)+'.bmp');
FotosEdificio[i].Assign(W);
end;
Lo que intenta es cargar imágenes que se llamen: casa0.jpg, casa90.jpg casa180.jpg y casa270.jpg
(1) Lo primero es que deberías cambiar el código par que cargue imágenes BMP, que son las que tienes en el directorio.
(2) Lo segundo es que si te fijas bien, el bucle usa la variable I y en el nombre del fichero usas la variable J, por lo tanto, estás cargando 4 veces la imagen casa0.JPG (que si existe).
(3) Por último, si quieres cargar las imágenes con números 0, 90, 180 y 270, tendrás que multiplicar el índice por 90.
El código para cargar las imágenes correctamente sería algo así:
Código Delphi
[-]
var
...
fName:string;
begin
...
W := TWicImage.Create;
J := 0;
try
for I := 0 to 3 do begin
fName := 'casa'+IntToStr(90*I)+'.bmp';
W.LoadFromFile(fName);
_FotosCasa[i] := TBitmap.Create;
_FotosCasa[i].Assign(W);
FotosEdificio[i] := TBitmap.Create;
fName := 'edificio'+IntToStr(90*I)+'.bmp';
W.LoadFromFile(fName);
FotosEdificio[i].Assign(W);
end;