the order of the colors
I call this "palette".

I create the palettes with this cycle
for n := High(plttpatt) downto 0 do begin
and use it with this cycle
for c := High(plttpatt) downto 0 do begin
The order is the same.
Not sure why you said: TList needed, or something that could be a recursively nested dynamic array as Seeds is a dynamic array created here: SetLength(seeds, Length(plttpatt)); ?
Array Seeds saves the paletttes for this particular level of recursion.
On the 0 level of recursion we use given
palette (in other words, the given order of colors placed on the given pattern) to draw
colors.
On the higher levels of recursion we use given
palette to draw previously saved
palettes.
For the 5x5 carpet it means that on the 1st level Seeds remembers the palettes for every 1/25 part of carpet but completely forget it when it's back on the 2nd level.
Look:
drawCarpet(5x5):
drawPalette, 2nd level — the whole carpet
create 6 seeds and save it in Seeds
drawPalette. 1st level — 1/25 part of carpet
create 6 seeds and save it in Seeds
drawPalette, 0 level — draw "pixels" aka rectangles
back to the 1st level and draw next palette from Seeds
back to the 2nd level and — boom! — we create new 6 seeds and save it in Seeds
Of course you can use array of Seeds but this will works only for 2 levels of recursion depth. What if you'll need to go deeper?

P.S.
But maybe I'm wrong... Try to use array of Seeds.