You may be able to block IM if you so desire using Snort, not sure if it detects IM or not, that's the common way to block P2P traffic. IMSpector is available in packages to monitor IM. There isn't a good content filter yet, but there is a commercial one that will be available as a package before too long.
Problem with routing branch office traffic back through your main office is it wouldn't go through Barracuda the way I showed it above. If you don't need to see the traffic before it gets NAT'ed, you could do this instead:
LAN – pfsense -- switch -- Barracuda -- modem/router
where modem/router is whatever device connects you to your ISP, whether a perimeter router, cable or DSL modem, etc.