Problems With Alpha Channels When Loading DXT5 Texture2D From PNG

I'm having a strange problem when loading pngs from disk as Texture2Ds in Unity. I want to load the images using DXT5 like so:

Texture2D texture = new Texture2D(2,2, TextureFormat.DXT5, false);
...
texture.LoadImage(buffer); 

When I do this, some of the images appear as they normally do, meaning, the look like they look when I load them in an image editor. But other images appear red and washed out. It seems like there may be some channel mangling going on with the images but I comparing and image that works next to one that doesn't in any graphics editor yields no clue as to why some of the images are red.

If I load the images as ARGB32 then they all work fine but I see a performance degradation.

What could be causing the images to take on a red hue? Is this a problem that should be solved in my code or is it a problem saving the image files? The image files came from a number of different users who created them using whatever tools they had available but the images look perfectly fine in every editor I've tried. Any clues what's going on and how to fix it in my script?

Maybe use a Photoshop action (or FastStone or whatever) and overwrite all images with resaved ones? That could get rid of possible faults in whatever editors were used. Maybe the alpha is written differently by the external tools, interpreted in the correct way by image viewers, but not by Unity (things like premultiplied/non-premultiplied alphas in compositing).