An XYZ tiles layer is a directory structure published using a webserver.
If you create the tile cache with geowebcache (as described) using the default file blob store, there will be a folder on your system with all the tiles in it.
Next you need to publish this with a webserver, e.g. apache, nginx etc.
The error you are getting is because you don't ...
I suspect this may be related to this open issue: geowebcache/issues/612
GitHub-user wonder-sk attributed the differences in the Y-value of TopLeftCorner to a piece of code at GridSet.java#L356 which is rounding the Y-value (but only if it is within 0.5% of an integer value).
The issue discussion also contains a workaround suggested by user MiquelRS: