sql server transactional - replication - the internal procedures often deadlock with user processes
Partitioning will likely not help, unless the user query in the deadlock can be rewritten in order to let partition elimination kick in. 

I would focus on making both operations in the deadlock graph as fast as possible instead. This will involve ad-hoc indexing or rewriting the query in a different form.

If the replication agent is often the deadlock winner, you could consider lowering its deadlock priority, in order to let the user queries run without being killed. However, I would explore this option only as a safety net in case you're not able to reduce deadlocks to a very rare event.