05AB1E, 3132 31 23 bytes
.•2Bãθ(•×£R„vr…v•VvÈ©•¹∍¬„ rv:ð«η¤S)ζJ.∞Rηε¬ý}.c
-1 thanks to Kevin Cruijssen and -8 thanks to Adnan
Explanation (Stack example w/ input of 3):
.•2Bãθ(••VvÈ©• # Push 'aibgyor' | ['aibgyor']
¹∍ # PushExtend 'vibgyor'to input length. | ['aib']
×£ ¬ # Push head. # Dupllicate string N times-- take first N chars. | ['aib','a']
R„ v: # Replace with ' v'. | [' vib']
R # Reverse.
„vr…v r: | ['biv ']
# Replace 'vr' with 'v r' η # Prefixes.
| ['b', 'bi', ð«'biv', 'biv ']
# Pad a space onto the endε } # For each.
... | []
η ¬ý # PrefixesBifurcate, join by head. | ['b','b'] -> ['bbb']
¤ # Tail (largest prefix). | ['bi','ib'] -> ['biiib']
S)ζ # Transpose the tail onto the prefixes. | ['biv','vib'] -> ['bivvvib']
J.∞.c # Join, Mirror | ['biv ',' vib'] -> ['biv vib']
.c # Center the result. | Expected output.