Your own tests already narrow it down very well:
External monitor is normal → GPU + system rendering are fine
Screenshots are normal → framebuffer is correct
Restart fixes it temporarily → reset of panel state restores normal behavior
To fix:
Open Intel Graphics Command Center
Go to System → Power
Turn OFF:
Panel Self Refresh
Display Power Saving Technology
Run Surface Diagnostic Toolkit
Then reinstall latest Surface firmware package manually from Microsoft
Control Panel → Power Options
Advanced settings:
PCI Express → Link State Power Management → OFF
Control Panel → Power Options → Choose what power buttons do
Turn off:
Fast Startup