wrong meg channel

I guess the documentation could be updated. Could you open an issue on the GitHub issue tracker?
It does seems to work as intended:

import mne
import numpy as np


data = np.random.randint(0, 10, size=90).reshape((3, 30))
info = mne.create_info(['1', '2', '3'], 1000, ch_types=['mag', 'grad', 'grad'])
raw = mne.io.RawArray(data, info)
raw.set_channel_types({'1': 'grad', '2': 'mag', '3': 'mag'})

Before: chs: 1 Magnetometers, 2 Gradiometers
After: chs: 1 Gradiometers, 2 Magnetometers