If you have source code for custom source filter, you can just break in and see the deadlock context yourself.
A typical streaming problem with multiple pin source is media sample delivery on the same thread. Even if it makes sense, one should avoid doing this since downstream filters that block streaming for reasons of stream matching or rate enforcement are not aware of thread reuse and would eventually lock dead.
If you have source code for the source filter, make sure sample delivery is split between threads. Otherwise, develop a helper filter which implements an asynchronous queue using worker thread, and connect source output pins, except the first pin, through these filters.