I had a similar problem driving me mad. Chrome pointed to the footer being the issue, but it was the main content container above it causing the issue. A React component changed the size of the containing div above the footer pushing the footer down and triggering the CLS issue. In fact, whatever the next element below that container would get blamed for the CLS issue, and the more of them there were the worse the score was.
My solution was to set a min-height for the main content above the "culprit" element.
Claude Code and ChatGPT also could not find this problem when I presented it to them.