First step is to find out which XML file is causing the trouble. Saxon would output the file name if it knew it; the fact that you aren't seeing a file name might mean that the input is an anonymous stream rather than a file. Look for cases where you create a Source object from a FileInputStream without supplying a system Id.
Getting a stack trace for the exception will help you to identify where in your code you need to look.
The message from Xerces typically comes when the first character of a file that's submitted for XML parsing isn't "<". But experience shows that this can be a symptom with a wide variety of root causes. Removing the XML declaration from a file is very unlikely to help (but removing a blank line before the XML declaration most definitely would).