Object values are indeed send able as arguments via RemoteEvents and RemoteFunctionsBUT there are a few things you should be aware of.
The server can not see what the client creates
There should be usually no reason for you to be sending an object value to the server (unless you have multiple similar objects and you wish to send a specific one). But I’m 99% sure that if the object was created on the client, the server will not be able to see it.
On the other hand, if the server was to create an object the client will see it because of replication as well as you can send the object to the client.
You can test these questions out by yourself by writing a “test” script and see if it works or not.
You will need some understanding of the Roblox client-server model which will lead you to this conclusion. Remotes don’t create new objects so instead they’re passing along variables that reference the object (much like how the game global variable references the DataModel). An object created on the client does not exist other clients or the server as per what the client-server model enforces, therefore it is nil and all such references point towards nil.