In physical meaning на-полнять ("на" as "atop") is more suitable for filling something to some (usually full) level of height. Examples: cup of tea, river (by rain), construction groundwork (by concrete) and so on.
За-полнять is about volume (not height). It is more suitable for talking about filling some (usually full) volume.
In most cases they can be used interchangeably.

"наполнять энергией" is idiom.
"пере-полнять энергией" ("пере" as "over top") is idiom.
"заполнять энергией" is not idiom.