Quite possibly it is using the wrong sd library, but does that matter?
Yes, it absolutely does matter.
A lot of work goes into each Teensyduino release to test a set of libraries which work together. Starting with Teensyduino 1.54, we abandoned the ancient SD library (which only supported 8.3 filenames and up to 32GB cards) in favor of SdFat with SD replaced by a thin wrapper which just uses SdFat. We've also defining "File" as a base class, so libraries which use files aren't limited to only SD cards. More recently, work has been under way to extend File, SD, SdFat, LittleFS, USBHost_36 in a variety of ways (mostly concerning detecting media removal & changes) to integrate with MTP.
If you copy SD into your {Documents}/Arduino/libraries folder, you're overriding all that effort we spend to make a set of libraries all work together properly. Especially if you have mismatched copies of SD & SdFat, or older versions libraries meant to work with the newer File class, you're just causing yourself a lot of pain.
I hate changing things when it's working!
Yeah, I get the "ain't broke, don't fix" approach. Obviously it is broken, because you're getting compile errors.
Keeping everything static only works if you apply that approach to everything. Upgrading other stuff but keeping an old copy of SD library is just asking for things to not work. We develop and test this stuff as a set of libraries which are meant to work together.
As for all that faff trying to use other versions of the IDE.....
The good news for you is Arduino IDE (at least the pre-2.0 versions) does support a way to keep everything self-contained. It's called
Arduino Portable Installation. It was originally meant for university students using the school's computers which change frequently or get wiped and reinstalled on a regular basis. Portable mode puts everything (all settings and saved files) into the Arduino software folder so you can have a self-contained copy of Arduino on portable media like a USB flash drive.
Teensyduino installer will automatically recognize if your copy of Arduino has the portable folder and perform the installation accordingly.
Sadly, portable mode doesn't work on modern MacOS. But it's great on Windows and Linux. Since you're using Windows, and you desire to keep your configuration static, please do yourself a huge favor and try using portable mode. You can have as many copies of Arduino in portable mode as you like. All of them will be fully self contained and unable to affect each other. Of course the main caveat to more than 1 copy of Arduino on any PC is you need to be aware of which version you're running. That's easy if you are in the practice of first opening Arduino, and then opening your code from Arduino's File > Open or File > Sketchbook or File > Examples menu. But if you are in the practice of clicking your code in Windows Explorer or other programs, then Windows will need to choose which copy of Arduino to run, and it probably will pick the wrong one.
I really hope you can understand the perspective from the point of view of developing these libraries. It could easily also be said "life is too short" regarding supporting software scenarios where a user intentionally mismatches a library like SD with different versions of SdFat or Teensy core library which is was never meant to use.