The issue is that only 1 providers file is read and it is from the specific location it is stored in the jar file. You can't simply add a new one with just your own configuration, which is why I mentioned it is easier to simply use the ProviderManager to add new providers.
You can do it with the providers file, if you have control of the classpath loading order, which is not always possible depending on your environment. For a simple java app, you can add a custom providers file in a meta-inf directory on the classpath BEFORE the smack jar. This way your file will get loaded INSTEAD of the one in the jar. I emphasize instead, because it means you have to have the content of the file embedded within the jar in your cusom provider file, as smack relies on those mappings to work properly.
The simplest thing to do in this case is to copy the providers file from the jar and then add your own provider configs to it.