Java (JDK), 110107 110 122 bytes
-12 bytes after the added possibility to output the list as a string joined with linebreaks
-3 bytes thanks to ceilingcat
Port of my JS answer, see explanations here
s->{var r="";int a=0;for(var c:s.toCharArray())r+=c==','&r+=c==44&(a+=("{[()]}".indexOf(c)+4)%7-3)==0?"\n"10:c;return r;}