Usar una Banda PageFooter no debería ser problema, (prueba con una banda Summary para asegurarte) el problema (me parece) es con la definicion de la expresión en sí, normalmente si defines la expresión en tiempo de diseño queda algo como:
Si la pones en sum(Campo) hay un error, en esos casos yo asigno temporalmente los campos de la tabla del reporte (con FieldEditor) y preparo la expresión en tiempo de diseño, luego la copio a la definición de la expresión para usarla en tiempo de ejecución y limpio los campos y cualquier otra configuración de tiempo de diseño.
Asegurate también de asignar el "Parent" de la expresión al crear el objeto
QrExpr1.Parent := QRBandX;