#W16s work based on whatever addressing mode you set via #SMA. If you're going to use #W16s, you need an #SMA. Although apparently, according to Klarth's post, you can use a custom pointer type as your second parameter in a #W16 to get it to write using the custom pointer type instead, so #W16($1CC1BC, Ptr). But since your pointers are just plain lorom pointers, I wouldn't bother with the custom pointer type.
You still need a #JMP in there too; if you're overwriting the previous text, you'll want to #JMP($1CFDAD) for example. Without a #JMP, you're just going to start inserting at file offset 0 in the ROM, overwriting whatever's there. Think of #JMP as a go-to command in a hex editor. You have to jump to a particular address before you start overwriting the old text, right? #JMP tells Atlas where the text itself is going to go.