stop trying to use position: sticky on every single child element. just set your header row to height: 0 or something and use grid-template-rows with a fixed pixel value for the top track. it keeps the scroll math from breaking when you have weird overflow settings on the parent.
grid-template-rows: 60px 1fr;
tbh it's much cleaner than fighting with z-index layers everywhere