Couldn't handle the fact that the errors were being echoed from the library and not thrown or at the very least passed back so I could use them.
Dropped the database abstraction layer, added a rudimentary MongoDB class, dopped all of the interface classes for the OAuth2 library and updated the dependencies to use @bshaffer's OAuth2 class as it has MongoDB support out of the box.
Seems the oauth lib's stable version is 3.2, dropped down from the 4 version to that.