How to Partition rest rows by the first row?

lst2 = lst;
lst2[[2 ;;]] = TakeList[Flatten @ #, Length /@ lst[[1]]] & /@ lst[[2 ;;]];
lst2

{{{"1", "2", "3"}, {"4", "5"}, {"6", "7", "8", "9"}},
{{"A", "B", "C"}, {"D", "E"}, {"F", "G", "H", "I"}},
{{"9", "8", "7"}, {"6", "5"}, {"4", "3", "2", "1"}}}

Also:

lst3 = lst; 
lst3[[2 ;;]] = Function[x, Module[{k = 0}, Map[x[[k++]] &, lst[[1]], {-1}]]] /@ Rest[lst3];
lst3

same result

MapAt[TakeList[Flatten @ #, Length /@ lst[[1]]] &, lst, {2;;}]

same result

Extract[Flatten @ #, List /@ Module[{k = 1}, Map[k++ &, lst[[1]], {-1}]]] & /@ lst

same result


p = Length /@ First[lst];

res = Prepend[
  Internal`PartitionRagged[#, p] & /@ Rest[lst],
  First[lst]]
{{{1, 2, 3}, {4, 5}, {6, 7, 8, 9}},
 {{A, B, C}, {D, E}, {F, G, H, I}},
 {{9, 8, 7}, {6, 5}, {4, 3, 2, 1}}}

The following also works. I removed the brackets

Prepend[Table[FoldPairList[TakeDrop, lst[[i]], Length /@ lst[[1]]], {i, 2, Length[lst]}], lst[[1]]]

Also, many thanks to kglr for correcting my code.

FoldPairList[TakeDrop, #, Length /@ lst[[1]]] & /@ Rest[lst]