If you want to use EXE files on Symbian devices you have to provide image loaders yourself, as you found out.
You cannot simply read a PNG file and copy it to a surface. You need to (a) decode the RGB pixel data, and (b) transform the pixel data into the 444 or 565 pixel format used by the device. You can use CGapiSurface::SetPixels to set one row of pixels in a fast way (this also solves the RGB transformation), but you still need some way to decode the PNG image.
One advice is to use a simple bitmap format, such as TGA, and then use CreateSurface and SetPixels to set the color values.