Mapping is the obvious answer here so maybe you're doing it slightly wrong?
MAPPING LOAD * INLINE [
ApplyMap('Map_Months',TRIM(UPPER(Month))) AS Month
You can you use this in all three data loads as when the third one doesn't match any map values it will return the current value - which is correct in the third data set.
Hope this helps,