GxEPD2 - "partial updates" general usage

I would need to see your code to analyze and answer this part.

If you have several fields on the screen with values that change at the same time, then it is best to use the full screen for partial refresh. There will be no difference in refresh time nor energy needed.
Note that on most panels the differential refresh is used on the full screen anyway. It is not noticed on the parts that have no difference in general.
On panels with SSD controllers, this is true for all, they have partial window addressing, but no partial window refresh (no partial-In, partial-out commands).
On most UC panels, partial window refresh is disabled, to avoid the "ghost frame" around the partial window:

    static const bool hasPartialUpdate = true;
    static const bool usePartialUpdateWindow = false; // set false for better image
    static const bool hasFastPartialUpdate = true;

If your static part is "expensive" to draw, then you could draw it once, and then write the partial windows (instead of drawing them) and update the whole screen with one refresh.
-jz-