Проблема в том, что если вы выполните вращение с помощью Canvas, вы потеряете прозрачность, как вы отметили в TPNGObject.
Это потому, что Canvas не поддерживает прозрачность на уровне, требуемом для изображения PNG.
Вместо этого вы должны использовать специализированный код для поворота изображения PNG. Вот ссылка на библиотеку кода, которая поддерживает TPNGObject, включая функцию для его поворота:
http://cc.embarcadero.com/Item/25631