The problem is that they aren't stored as separate layers in PNG. It's just a rasterized bitmap, where every pixel has an RGBA value, ignorant of any context.
Although there may be "true" transparency in your image (as per-pixel alpha values), which PNG supports, it sounds like that's not what you mean. True alpha in PNG just means you can see what is below any given pixel with an Alpha value of <100% (e.g. to pixels below in a layer-aware program like Photoshop, or for example a web page background below PNG icons w/ transparency).
In other words, "transparency" is meaningless in the context of what you are describing, which was obviously at least two layers originally. The "semi-transparent" pixels you are describing, aren't transparent at all. They have very specific RGB values. It's just that when viewed as a whole, like any image file, the arrangement of colors produces a visual illusion in the brain of, say, semi-transparent letters.
But all may not be lost. If it is a simple image, with only a few unique colors and no continuous tones, and not very big - you could paint over the "transparent" pixels, with whatever exact color the non-transparent parts are or should be.
But if it's very complex, many colors, and/or with continuous tones - then you might be better off recreating it.
I feel your pain, I've done similar things many times. I've learned to always keep the original PSDs no matter how trivial it seems :-).