This is only viable for Server → Client replication, as client sided changes are local, and don’t replicate to the server (with a few exceptions with network ownership and some properties I believe, which OP was wanting to use to their advantage).
Even if you used attributes in server to replicate data to the client, it would be replicated to everyone. That’s quite a lot of unnecessary network traffic in servers with a lot of players, when only one player may need the data. There also may be some data you want to only selectively replicate to a few players, and not everyone which there is no way to currently do if you want to use unreliable replication.
The API that Roblox provides for networking things is fairly lacking, and there is quite little documentation on how the underlying networking code works for physics, remote events and other things that would be useful to know, not only in order to create a good server-authoritative character, but for other networking related things.
Here are some feature requests related to giving better APIs for networking: