Great article, Castorix, thanks very much. After many frustrating hours I have to put this down until I get more time to investigate.
For anyone interested: After testing more files from 2 Canon cameras, a Samsung S21 and an Epson FF-680W scanner and comparing things before and after using Photoshp, I find that results vary greatly depending on the original file. Which makes sense given the DEcoding and ENcoding that has to happen. For instance, I found that using EXIF method mentioned in the original post, the files from the cameras had no changes at all. But using the System.Drawing method quite a few of the pixels had different RGB values after the rotate. These differences were only a few units up or down, but still there. This could also be a result of something Photoshop is seeing, or something now missing, after the rotate. Original image is on the left, the right is the Photoshop comparison, colored areas are differences, black areas are the same.
On an image from the S21 the EXIF method caused about same changes as above, but the changes were much worse on the S21 photo using the System.Drawing method:
So, I've decided that for now I'm going to try and emulate what the Explorer does in Windows 10 does when you right click and say rotate right or left. Which, I'm nearly sure is just updating the EXIF data.
BUT, when I modify just the Orientation flag it's OK in Windows, the vb.net app I'm writing that displays it (both Microsoft, of course), but not in Photoshop. Photoshop is OK when Explorer rotates it, so I've got more investigating to do.
If anyone can cast any light on any of the above it'll be MUCH appreciated. When I can get back to this, if I find anything new I'll post back.