The official writeup for the error is at
https://docs.microsoft.com/en-us/cpp/error-messages/tool-errors/linker-tools-error-lnk2005?view=msvc-160
If you can't understand it and can't go through the possibilities that presents with the code you have written then it might be time to have a rethink about the way you have planned and written your code. Nobody here is likely to find it without the complete code. Good luck with that possibility :)
Your main() and PolyNumber run so that's a plus as said before.
Take the advice you have already been given:
1. get rid of all the comments and clean it up so you can read it!
2. get rid of the inline's and #pragmas they're not important to the debugging.
3. work out which one of the two operators caused the problem - comment out each one at a time. That might go a somewhere towards finding out where the duplicate definitions are.
In terms of the rethink it is clear to me that you need to
'decouple' this LinkedBag<PolyNumber> from the scene and put it into an independent and properly templated class. Either that or come up with some sort of hare-brained inheritance scheme.
As for the class PolynomialInterFace, well that is an 'interesting' name that could possibly be better as just a simple driver. I wouldn't be surprised if that has something to do with the error because I bet it hasn't been unit-tested and and overlap/duplication could easily be there because you have unwanted 'coupling' :(
Classes are generally meant to be independent stand-alone encapsulations of objects. If they don't stand-alone and they aren't unit-tested ...