brainfuck, 103 96 9595 91 bytes
++[[+<]>+>++]<++[[+<]>+>++]++++++++++<-[[<+<+>>[[<<<+>>>-]<<<]----[>+<[<+>----]>+[>>+<<]<+<<[>+>+>+<<<-]>-]>[[<+>-]<[<]>[.+>]>[]>>[[<.>]++++++++++>-]>[.,<[<]>]>>]<<[<]>>]
Try it online!
This does roughly the same as my Sesos answer, where you can find an explanation of the algorithm.
The only difference is that setting a cell to 26 and adding 64 to another one is not straightforward. For these parts, I have useduses Esolangs' brainfuck constants for this26 and this64 algorithms from Esolangs' brainfuck constants. Try it online!