One-to-many substitutions cannot be done contextually. One workaround is to have one lookup that replaces group 3 with ligatures of group 3 glyphs and the insertion glyph. And then a separate lookup with simple one-to-many rules, that split the ligatures into group 3 glyphs plus the insertion glyph.
Yes, they can. it is something like this (type in Safari…)
# this goes in a prefix, not in the features section.
lookup oneToMany {
sub a by b c;
} oneToMany;
# this goes in a feature:
sub @class1 @class2 a' lookup oneToMany @class3;