MakeBitmapCopy does not handle really an alpha channel. It is intended to handle masked bitmap (either opaque or fully transparent pixels), as this is what's available in the LCL on all platforms. PixelFormat is buggy as far as I last tested it and is better not to use it.
With MakeBitmapCopy, you would still need to free the temporary TBitmap. In this case, the shared data is not linked to the TBGRABitmap so nothing bad happens.
var bmp: TBitmap;
begin
...
bmp := bgra.MakeBitmapCopy(clBtnFace);
AImage.Picture.Assign(bmp);
bmp.Free;
...
end;
Probably one of the simplest option if you want full transparency when available in the LCL is to store the image in a stream as PNG using TBGRABitmap.SaveToStreamAsPng and then load it into the TImage. Though that need some time to compress/decompress the PNG. It seems internally it uses Init_BPP32_B8G8R8A8_M1_BIO_TTB to define the RGBA format.
var stream: TMemoryStream;
begin
...
stream := TMemoryStream.Create;
bgra.SaveToStreamAsPng(stream);
stream.Position := 0;
AImage.Picture.PNG.LoadFromStream(stream);
stream.Free;
...
end;
What I would do is, instead of using a TImage for display, is to use a TBGRAVirtualScreen (opaque component) or TBGRAGraphicControl component of BGRAControls. This way, you can assign your image directly as BGRABitmap and always have alpha channel handling. If you need to prepare the image on form creation or that the area can be resized, then it is better to use the OnRedraw event and place/resize the image accordingly and put it on the Bitmap supplied as a parameter.
I have considered making a component that would be called TBCImage that would be like TImage but with a TBGRABitmap property.