The monitor pixel rate to 1:1 D.w() and D.h() is 950x950. The GUI image element size is determined by the function f(x) = (x/MonitorPixelRate)*2, which in this case is 950px. f(x) = x/475 simplified. This gives a GUI image object the same size as the original image, assuming the GUI Scale option to Window is enabled. Doing that same process for buttons, tabs any element however does reduce the quality for whatever unknown reason.
What is the reason for this quality loss on say for example tabs, and not when we place it as an image.
See the attached screenshot for a clarification of the issue.
If you want to have per-pixel graphics (I don't recommend as there are all sorts of devices out there, ranging from phones with 1280x720 to monitors with 1920x1080 and 4k screens 3840x2160)
You also need to make sure that positions are per pixel aligned, if position falls between 2 pixels then image will be 2x more blurry. I think most gui objects auto align themself while drawing, except tabs, to don't cause pixel spaces between each other.
If for some reason you can't make it to work, you can attach a small project and I will see what's going on.
About your formula for D.w D.h D.scale, you might try adding +-0.5 or +-1 or +-2 somewhere in there, just to see if it will help.