Starting with Windows 10, 64 bit, Laz-trunk/FPC3.2.0 (32 bit): Cloned the GR32 git repository (
https://github.com/graphics32/graphics32, master branch). There are two Lazarus packages, a runtime and a designtime package. Compiled the runtime package --> fine. The designtime package is sett up to be installed only (not compiled), thus I rebuilt the IDE --> fails due to "Can't find GR32_Blend used by GR32"; seems to me that this is because the authors put both runtime and designtime units into the same folder... It took me some time until I found a way how to rebuild the IDE again, i forgot the steps.
Fortunately your project creates the TImage32 at runtime, and thus installation is not needed. But your package requirements contain a "GR32_L" package, rather than the GR32_Lazarus of the github package. Replaced it, your program compiles and runs. As expected, of course.
Went on to a VM with Ubuntu 20.04/64 bit. Cloned the repo again. Now even the runtime package refuses to compile, in some assembler part in procedure BlendMems_SS2 in unit GR32_BlendSSE2.... This issue was already posted in
https://forum.lazarus.freepascal.org/index.php?topic=53095.0.
Giving up on the master branch, I moved on to the version distributed by OPM: the package now is the Pilot-Logic version, named pl_Graphics32. Compilation fails due to an error in "Canvas.Brush.Color := clButton" -- this is due to the unknown clButton identifier. I wonder how anybody could compile this... Replacing this by clBtnFace (and, further down the same procedure, the clDisabledButtonText by clGray, and the clButtonText by clWindowText). Next issue is usage of unit Qt5Objects in GR32_Backends_LCL_Qt5 which does not exist, only a QtObjects (my IDE is compiled for qt5 here). Removing the "5" finally makes the package compile.
Testing your program I do see the black area where the bitmap appears on Windows - so, I confirm the issue. Switching to gtk2 widgetset - same issue.
Going to a notebook which has a 32 bit Linux. Now even the git master version compiles (after making the color changes). But in your demo I still see the black area where the Image32 is supposed to be.
Giving up for the moment. To summarize, I confirm the problem that you reported, but it seems to be a Linux issue in general, not just a 64-bit Linux issue as you write. And it is an issue which exists aöready in the github master version, not only in the PilotLogic version.
It is disappointing to see that the great Graphics32 package essentially is still Windows-only. Compilation issues with undefined identifiers remaining unnoticed indicates that there is little or no maintainance for non-Windows platforms. You should file a bug report on the GR32 github. But I have little hope that this bug will be fixed soon.