EastRising RA8875 resistive touch debounce problem

I bought a 7" display and shield from East Rising (buydisplay). I’m using the library supplied by them. It’s remarkably easy to work with in most respects, but I’ve been struggling with a debounce type of issue on the touch screen for the past week and I can’t find an answer so I’m hoping someone can help.
As I said, 7" RA8875 display and shield. (ER-TFTM070-5-4125(RTP))
Interfacing with Mega2560

My problem is with reading pixels from a touch. Obviously I get a series of readings from each touch. I figure that’s no problem - I can average them. However, the last point from each read is way off. Tap the screen near the (140,160) area and the last reading I get will be near (700,150). All of the last readings are localized around that (700,150) region on the display as though there might be something wrong with the touch panel?? Maybe the touch panel has an overly sensitive region so whenever the interrupt is triggered, it will detect in that region?

I’m theorizing that using a z point (pressure) might be a way to resolve my issue, but honestly I’m far too much of a noob to make the necessary adjustments to the library.

I wrote a very simple sketch to show the issue…

#include <SPI.h>
#include <RA8875.h>

#define RA8875_INT 4
#define RA8875_CS 10 
#define RA8875_RESET 9
RA8875 tft = RA8875(RA8875_CS,RA8875_RESET);
uint16_t tx,ty;
   
void setup() {
  Serial.begin(9600);
  Serial.println("RA8875 start");
  tft.begin(RA8875_800x480);//begin 
  tft.touchBegin(RA8875_INT);//enable touch screen
}

void loop(){
     if (tft.touchDetect()){
          tft.touchReadPixel(&tx, &ty);//read directly in pixel!
                    tx=800-tx;ty=480-ty;
     Serial.print("x=");
     Serial.print(tx);
     Serial.print(" y=");
     Serial.println(ty);
}}

The serial monitor recording shown below depicts 3 quick taps of the screen. Note that the final reading from each tap is in that (700,150)-ish region. It’s got me perplexed. Any suggestions or ideas?

RA8875 start
x=454 y=172
x=450 y=165
x=444 y=168
x=444 y=170
x=444 y=172
x=443 y=171
x=442 y=170
x=443 y=160
x=437 y=156
x=456 y=148
x=700 y=154
x=276 y=203
x=266 y=203
x=259 y=201
x=261 y=202
x=261 y=201
x=259 y=201
x=259 y=201
x=704 y=158
x=214 y=151
x=215 y=153
x=255 y=177
x=263 y=168
x=235 y=159
x=219 y=152
x=209 y=152
x=195 y=148
x=194 y=142
x=196 y=138
x=700 y=147

I've been playing with delays (or comparing millis() time readings) in an effort to eliminate the subsequent touch detections...particularly the bogus ones from that (700,150) region on the touch screen. But, it hasn't helped.

Most recently I tried adding a lengthy delay after the touchDetect() function.

void loop(){
     if (tft.touchDetect()){
       delay(1000);
          tft.touchReadPixel(&tx, &ty);//read directly in pixel!
                    tx=800-tx;ty=480-ty;
     Serial.print("x=");
     Serial.print(tx);
     Serial.print(" y=");
     Serial.print(ty);
     Serial.print(" time=");
     Serial.println(millis());
}}

Using this code, if I tap the screen, I get 1 correct reading and a second later, I get the bogus reading (long after my finger has been removed from the screen). If I hold my finger on the screen, I continue getting correct readings until I remove my finger. Then the last reading is wildly incorrect again. This serial data shows two individual taps (each a few seconds apart) and then I held my finger on the screen for a few seconds. It's obvious to see that the last reading after each tap is way off.

RA8875 start
x=172 y=181 time=3434
x=729 y=150 time=4435
x=206 y=159 time=6839
x=725 y=150 time=7840
x=153 y=220 time=10936
x=116 y=213 time=11936
x=114 y=213 time=12938
x=113 y=212 time=13939
x=116 y=212 time=14940
x=672 y=140 time=15941

I don't understand how it can be collecting the last reading at the end of each touch. The touchReadPixel() function is supposed to clear the touch interrupt after it's completed the read so why does it enter the touchDetect() function and read more pixels after this?

Can anyone help? Do I just have a faulty touch panel or is there a way to solve this with better code?