I’ve never had an issue upgrading cameras remotely - I do this regularly (for both NVRs and the cameras attached to them). There are several ways it can be achieved.
1 - Using a VPN connection to the site (with virtual host enabled) Web browser.
2 - Forwarding ports 65001 to 6500x to the NVR IP address (with virtual host enabled) Web browser.
3 - Using iVMS. No virtual host is needed. I don’t like this method as you can’t see the platform and existing firmware version of cameras connected to the NVR. Therefore you are sending the file blind. On the plus side you can do multiple cameras simultaneously.
4 - Hik Partner Pro. Ugh….It promised to be so useful. Unfortunately it isn’t. The whole point of HPP was to allow config/maintenance without port forwarding over P2P while allowing the end user control of access. In most cases so far, to get HPP to show the firmware upgrade controls, I’ve needed to enable Hikvision DDNS. What’s needed to enable DDNS?….the admin password of course.