Was ich in deinem Code noch vermisse ist die Freigabe des Png48 Objekts. Wenn TIconData freigegeben wird, muss auch das Png48 freigegeben werden, sonst hagelt es von Memoryleaks.
Genau das war mein Problem. Danke für den Hinweis. Damit sind die PNG Memory Leaks verschwunden