Might work...
1. STOP SLAVE SQLTHREAD; (may as well leave the IOTHREAD running)
2. One ALTER per table, with as many changes as needed for the column(s).
3. START SLAVE;
4. Wait for catchup.
5. Failover.
6. deal with all the other slaves.
What "mode" of Replication are you using?
SBR (Statement Based Replication) -- The INSERT statements are sent, without knowing or caring what charset is used by the columns that it will go into. So, having a different charset (on tables/columns) on the Slave than the Master should work.
RBR -- This may fail. (But I am not sure.)
Clients should not be harmed by the change -- A client announces what encoding its bytes are in; the table columns are declared as to what encoding they store; the communication between the two does any transliteration needed.
Note: you must ALTER each column; you cannot simply change the system or database _default_ CHARACTER SET.
(I know nothing about "UseOldUFT8Behavior", so I cannot address that, specifically.)
See my doc on ways to verify the encoding, etc.:
http://mysql.rjweb.org/doc.php/charcoll