I've looked into this before: the problem is that PPaint does merge the image before applying the mask...
PP
treats transparencies very poorly: once a pixel has a level of
transparency applied to it, then you can only make it more transparent.
The transparency is not a non-destructive lens {which it should
be IMHO}. If you want "proper" PNG's with proper alpha channel masks
within PP, then you have to maintain the original object at 100%
opacity (or at least have it look this way at time of export) and use
the mask as a proper alpha channel. (I would duplicate the object, hide
the original, get the transparency you want, then create a mask from
the object, show the origional and then export.)
(PShop I presume works with transparencies as a separate "lens" or whatever the equivalent is - therefore no problems.)
Since the object's transparency is "locked", PP flattens the
image, then applies the transparency to the flattened image. So you get
a whiteness - the transparency is almost applied twice. On import of a
PNG, PP applies the transparency to the object so you now loose the
origional object's pixel data - save it out as a PNG and you have the same problem, except no "origional" that you can have at 100% opaque to generate the correct output.
Draw works differently: each transparency is editable
(and removable) once applied - when exporting, it takes all the
transparencys and makes an alpha mask from them. Then ignores all
opacity data and exports a flat image with the correct alpha mask. So
you get a "proper" PNG file without any hassle.
{I don't "Know" this as fact: I am deducing this from what's happening.}