The problem is that the image is semi-transparent and thus it looks good on white background. If you change the bg to black the result is the same as in your code.
I don't have an idee yet how to display it with white bg but in a transparent GUI.
Edit:
If your bg is light then you can use:
While Sleep(10)
_GDIPlus_GraphicsClear($hBackbuffer, 0) ; Clear with opaque black color
_GDIPlus_MatrixRotate($hMatrix, $iAngle, "False")
_GDIPlus_GraphicsSetTransform($hBackbuffer, $hMatrix)
_GDIPlus_GraphicsDrawImageRect($hBackbuffer, $hBG_Bitmap, -$rot_mid_x / 2, -$rot_mid_y / 2, $width / 2, $height / 2)
$GDIBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap, 0xFFFFFFFF)
_WinAPI_SelectObject($dc, $GDIBitmap)
_WinAPI_UpdateLayeredWindow($hWnd, $ScreenDc, 0, $pSize, $dc, $pSource, 0xFFFFFFFF, $pBlend, 1)
_WinAPI_DeleteObject($GDIBitmap)
WEnd
which will add white as a bg color.