# [J], <strike>64</strike> 63 bytes

    rplc((_2]\'ĉĝĥĵŝŭĈĜĤĴŜŬ');~"1'cghjsuCGHJSU',.'x')"0

How it works:

With `_2]\` I rearrange the string 'ĉĝĥĵŝŭĈĜĤĴŜŬ' into a 12-row column in order to fit the shape of the other string.

`,.` adds 'x' to each character of the 'cghjsuCGHJSU' string and makes a 12 row by 2 columns array

`;~"1'` makes a list of boxed pairs of the above, "1 - rank 1 - apply to each row.

    ┌──┬──┐
    │cx│ĉ │
    ├──┼──┤
    │gx│ĝ │
    ├──┼──┤
    │hx│ĥ │
    ├──┼──┤
    │jx│ĵ │
    ├──┼──┤
    │sx│ŝ │
    ├──┼──┤
    │ux│ŭ │
    ├──┼──┤
    │Cx│Ĉ │
    ├──┼──┤
    │Gx│Ĝ │
    ├──┼──┤
    │Hx│Ĥ │
    ├──┼──┤
    │Jx│Ĵ │
    ├──┼──┤
    │Sx│Ŝ │
    ├──┼──┤
    │Ux│Ŭ │
    └──┴──┘


`rplc` uses these boxed items to replace each occurrence of the left boxed item from a pair with the right one.  

[Try it online!][TIO-jajfjg1n]

[J]: http://jsoftware.com/
[TIO-jajfjg1n]: https://tio.run/##VYq9joJAFEZ7nuKG5kJiCFpqjAWFxtbYacw4MiD@oAyj1xi3Xt9BO7dbO32D4bkQGzN25/vOSUoh2x740AS/zDZL7jiTxniE@qyv@k8/i2tx17/6om/6UVyKf3RbP3YdeRQnUgXdXn8wxJqHhK7tl65le4Ci7SHU4NQEIS0r5HEKAjCiOYQyZxJ2LFsxhI8JSIGsrCT21guWp8kamCKI1XqWJh2jHRKnqpvymRPTgNxQRMdTywi2@zDLD2qebowTDDaQTOZfw1ScqlW@AA "J – Try It Online"