Why does SQL Server table partitioning stop working?
I imagine the slowness (and thus deadlocks, etc), and the perception that partitioning "stop working," are because your queries suddenly stop getting partition elimination.

There are lots of reasons that you can miss out on partition elimination:


data type mismatches and auto-parameterization (see Why Doesn’t Partition Elimination Work?)
not being specific enough with predicates when joining to other tables (see Implied Predicate and Partition Elimination)
limitations related to join types (see why no partition elimination)



  My question is why is this occurring, and is there a way to check to see when or why this is happening.


You should get actual execution plans for the specific slow queries, or maybe just one of them.  Get one when it's working great, and one when the problem is happening.  You should be able to see the difference (likely a difference in the number of partitions being read).  Feel free to post a question about it on the site.

Maybe stats get out of date and you get a hash join with the partitioned table on the probe side.  Or you suddenly get a lower cost for the queries and they're being trivial-plan'd / auto-param'd.

The whole workflow of "dropping and recreating everything makes it work" makes me very suspicious that statistics are involved in the root cause of the issue.  

The specific answer to your "why" question will likely be in the execution plans.  Until then, these are just educated guesses, but hopefully they point you in the right direction =)