You can't bilinearly filter or blend RGBM values.
when I doing the offset to do my Gaussian blur am I messing up the encode information ?
e.g. 10*10 and 5*20 are the same, but if I blend between them I get 7.5*15 which is different.
So, yeah, if your bloom samples are in-between pixels, then you'll be doing strange things to your colour values. You could try making the BloomMap sampler use nearest/point filtering.
Also, at the end, instead of return color; you probably need return EncodeRGBM(color.rgb); so that the next blur pass works.