Volume conservation is not enforced in SCHISM but the error is generally small. Mass conservation is enforced with upwind/TVD transport.
It's important to use proper method in checking the volume conservation. In particular, you should make use of the flag consv_check in param.in, instead of calculating flows using the outputs yourself. This is because the velocity outputs have interpolated from side centers to nodes. Strictly speaking, checking volume conservation in SCHISM entails a calculation of semi-implicit fluxes to be consistent with the original formulation but this has not been done in the web version.
Another thing to be aware of is the boundary condition. For example, the imposed river flow is conserved downstream, but if you also impose the elevation b.c., this is not the case anymore. The elev. b.c. as an essential b.c. over-rules the flow b.c. (a Neumann b.c.).