This is not really a bug. It is due to the OpenMM design, which only returns the total potential energy to the CPU. This is what ~charmm/doc/openmm.doc says:
--------------------------------------------------------
Energy Computations
===================

Energy terms supported through the CHARMM/OpenMM interface for computation
on the GPU include: BOND ANGL UREY DIHE IMPR VDW ELEC IMNB IMEL EWKS EWSE EWEX,
HARM and ETEN. However, these are returned from the CHARMM/OpenMM interface as just ENER,
i.e., the sum of the components. One can evaluate the individual components through
use of the SKIPE commands.
------------------------------------------------------------

You probably don't want to run your simulation using just one energy term, so the last sentence refers to postprocessing of a trajectory (but I am not sure that it would pay to use the GPU instead of the CPU for this purpose).


Lennart Nilsson
Karolinska Institutet
Stockholm, Sweden