Unless your VPN is really exceptional, it will probably not work well for streaming. VPN's are first of all slow, and more importantly, have inconsistent bandwidth. While this is an acceptable degradation for privacy sake, it makes live streaming quite unreliable. It "may" be ok if used just for recording (if the timeout is high enough), but watching would be terrible.
Second issue is that changing to the vpn user would make all tvheadend clients also use the vpn, which makes things twice as bad. So you would have to setup a reverse proxy to avoid it.
Best way would be to use curl or wget with a pipe as the url for your iptv source. With each, you can set your source address to your vpn, which would then use the vpn to connect to the iptv source. Something like:
pipe:///usr/bin/wget -qO- --bind-address VPN_ADDRESS http://IPTV_SOURCE
where VPN_ADDRESS is the ip address of your vpn interface (tun0??)