From the looks of it, you'll have to modify fastfetch's source code, quite fundamentally.
From a glimpse at it, the way fastfetch works is that it parses your --structure, and makes a list of entries from that.
Then it goes into the template, checks the first line, printfs the first line of the distro logo, then printfs the first element of your structure list. Finally, it prints a line break.
Then it goes to the second line, prints the second line of the logo, then prints the second element of the structure list. Which itself consists of printfing "OS: ", followed by printf of the detected OS (CachyOS Linux x86_64).
To center-align things, the logic would need to change: It would first have to measure how long the strings would be if printed, then prepend half the remaining space in the "box" to it, then actually print.
Because fastfetch isn't written that way: Go ahead and modify it! Instead of directly printf to console, you'd probably want to let it work on a character array buffer instead, and introduce layout/placement functions, much like you would if you were using an actual TUI framework, like ncurses or notcurses. Sadly, that kind of requires significant rework of fastfetch's source code.