ColorCombine should do the trick. Mathematica works with lists and to loop over list one uses the Map operator, which in short notation is /@. Also data in an array is something different that data stored as and Image. Some functions are convenient but only work on Images and not Lists.
cols = {r, g, b} = ImageData /@ ColorSeparate[img];
imgs = {ri, gi, bi} = Image /@ cols
In[11]:= Head@img
Head /@ cols
Head /@ imgs
Out[11]= Image
Out[12]= {List, List, List}
Out[13]= {Image, Image, Image}
ColorCombine[Image /@ cols, "RGB"]