You're kind of on the right path.
Consider a common scenario - your home network is fronted by a router (either provided by your ISP, or a third party device), that uses Network Address Translation (NAT) to share one public IP address amongst multiple devices on your internal network. This means your Mac, your phone, your iPad, your smart TV, your Blu-Ray player, your printer, etc. are all connected to the private LAN, and can get out to the wider internet through the NAT router.
The NAT also prevents external devices from getting to your internal network - so no remote user can print on your printer, etc.
With a VPN, you essentially bust a (small) hole through the NAT device so that your remote device, on a public network in some coffee shop downtown, has a connection to the private internal network. It's just like it's on the internal network, albeit as a second-class citizen.
This means that when connected via VPN you can, indeed, access all the internal resources that you could if you were physically at home - you can print on your printer, copy files to/from a file server, etc.
The gotcha is that, ordinarily and for valid reasons, auto-discovery doesn't work across the VPN. This means that when you're in the Finder and you try to connect to a server at home, you might not see the server in the Finder's sidebar. If you launch screen sharing, you won't see other hosts on the home network as being 'available'. In order to achieve this level of interaction you need to know the address of the host(s) on the internal network. If you know your file server's address, for example, you can use the Finder's Go -> Connect to Server menu, enter the address and get connected. It just doesn't happen automatically. Likewise if you want to stream from your TiVo, you need to know the IP address of your TiVo (assuming the TiVo app lets you specify an IP address, and doesn't just rely on local auto-discovery).