batch members communication settings
1/ Create a Profile that includes the required Comm Pref fields (this would be a Profile that ONLY contacts Contact type fields, not membership fields)

2/ Adv Search

3/ set your 'membership criteria' as required to find the relevant contacts

4/ use the 'batch update' or 'update multiple contacts' Action (4.6 and 4.7 have different descriptors

5/ you should then be able to bulk update

i just did this on dmaster.demo.... and it worked fine but maybe i am misreading your problem