I have just replicated your model without any drama.
Create the cylinders and put them inot the barrel. MAKE sure they are in far enough, use X-ray for this. Then select ALL of the cylinders together (no barrel) then mesh>combine
then select the BARREL first, hold shift then select the cylinders. Then go edit>mesh>booleans>difference , this should work.
Sometimes with booleans you have to change the order of selection and type of boolean operation. ctbram has a tutorial somewhere on here (I forget where) about 2 different ways of doing this.
IMO you should have a seperate face panel for each cylinder, that way you can poly split it up. You could also reduce your cylinder sub axis to 6, this is sufficient. You will still get a clean round hole.
I will locate ct's tut for you and post the link.
Hope this helps
"A Darkness at Sethanon", a book I aspire to model some of the charcters and scenes