I think the problem is not the way you use your png but the fact that you use a png
the transparency of a png is the problem because your gpu has to render pixels that are transparent and if a pixel is transparent your gpu redraws the surface beneath it too and this results in a huge bottleneck
try to avoid tramceparent pices of mesh