Would Polymorphism and/or an Interface make it easier to use these
libraries in my project even though I am not so sure about the API?
Not really, the documentation around an API and the API's deisgn are the primary ways an API becomes easier to use. Using an API is a learning task, and the documentation is like a good tutorial or lesson while improvements in the API design is like simplifying the material to be learned.
What would unit testing be like using Polymorphisim and/or an Interface
on this type of project?
For the most part, the unit testing would be similar, in the sense you would call a method, or several methods on an object and check the results.
Using Polymorphisim, you mostly test the classes at the bottom of the inheritance tree, using an Interface, again you mostly test the classes at the bottom of the inheritance tree. That is because you really cannot instantiate an abstract class or an interface in a way that makes sense when unit testing.
In general, what is the best practice when developing with third party
libraries that have poor documentation?
In general, the best practice is to write small pieces of code that validate your assumptions, and then running them to see if your assumptions are correct about how you think their library works.
Other techniques include downloading the library's source code and reading it, if it is available. Writing Unit tests to "test the library" can be of use in this manner, but sometimes the library is not structured nicely to make this easy.
Sometimes the documentation is available by other means, for example by purchasing a book that introduces you to the library. Sometimes you can take "training" classes from the vendor of the library. Sometimes you can find other people who are using the library and ask them questions (this often includes library specific user groups or mailing lists). Sometimes you have access to the library's bug tracking system and can find details from the bug submissions (or the rejections of bug submissions which indicate the proper way to use a function, etc). Sometimes you can find other projects using the same library and read their source code to determine usage patterns that seem to work.
Libraries are typically written to be used, but not everyone is as good at writing a library to be used. Sometimes the authors provide the information and you just don't know where it is, other times the authors lack the necessary ability to have a different point of view and never show you how to use it effectively. Generally, libraries that are far too hard to use get used very little, and eventually are forgotten and unused.