When persistence.xml defines multiple persistence units, classes injecting EntityManager with @PersistenceContext(unitName=value crash because the entities associated with the PU in configuration are not recognised at runtime.
By placing trace in the code I established that the first EntityManager injected gets injected to all my other service classes even though I use different unitName= annotations.
The EntityManagerObjectProvider class contains a class variable proxy and works like a singleton always injecting the first EntityManager proxy class created for any later EntityManager injections.
The following code fixes the issue and is provided as-is, free and without copyright or warranty. This is more like a refactor because I have also replaced some depricated code. As a patch it also works just to remove the proxy class member variable and the if (proxy == null) condition.