We use Arduino as a tool to quickly check out sensors and other components. It's great for making blinky lights, but it's terrible for learning embedded systems programming. All you're doing is running programs and libraries that someone else wrote, no one knows how they work, and it's almost impossible to track down all the nested routines and libraries that are called for even the simplest tasks.

We don't use PB very much anymore, but we invested in PB3 to help support the product and stay up to date. When we found that none of our existing programs would compile with it (getting error messages that said "unspecified error" didn't help) we decided it wasn't worth spending the time to get it all running. Our PIC development is now all done in C, and we dropped back to 6.1 for the quick test routines.