行単位じゃないならこれで動くかな?
ほとんど>>447のパクりだけど

$str = 'A,B,CDE,F
#A,B,C,D
HOGE,HOGE,
aiueo,kakikukeko
#E,F,G';
echo preg_replace("/(?=(?:#|(?<=.)\G))([^,\r\n]*),/", "$1&", $str);