Let me make it simple: Unless you are huge (that is doing well in excess of $200K in charges per month) there really is no point in handling all this yourself, you will spend tons of money in keeping up with the compliance requirements, which change way too frequently and are contradictory in many places.
Outsource and be done with it, unless your turnover is so large that the accumulated fees for having some third party take care of it outweigh the costs of doing it yourself.