Vyxal, 15 bytes
ė2ḋƛ∩÷Ṙ¹∇Ȧ;‡⁰꘍∵ ė2ḋƛ∩÷ could be ẏ2ḋƛ¹İ for the same byte count.
ė2ḋƛ∩÷Ṙ¹∇Ȧ;‡⁰꘍∵ ė # Enumerate, make a list [index, x] for each x in the first input. 2ḋ # Combinations without replacement of length 2; pairs. ƛ # For each: ∩ # Transpose ÷ # Dump; push both items onto the stack. Ṙ # Reverse the top pair (the pair of two characters). Call this Y, and the other pair X. ¹ # Push the first input ∇ # Push it under the top two values of the stack, aka c,a,b. Ȧ # Assign; replace each of the indices in X with the corresponding value in Y. ; # Close map. ‡ ∵ # Minimum by: ⁰꘍ # Levenshtein distance with the second input.