I searched about fn-bea:serialize .It changes from XML to string that means it should add CDATA ,not remove CDATA.No, it is not the case. You might be hitting a known bug where fn-bea:serialize adds CDATA if xml deeper than 3 level. You may get a fix for this issue from Oracle support by raising a SR.
I changed b.proxy's request message type from text to xml.Now the data is coming as xml not contained inside CDATA. but still i am getting the format like below:It seems to be the assignment issue in the first proxy. Can you post the $body assignment expression here?