HubSpot live chat widgets use window.location, so they will not change unless the parameters are in the URL. It is not enough to pass the variables to setPath and then trigger widget.refresh().
From your description, it sounds like you're using widget.load() when you should use widget.refresh(). widget.load() allows you re-render different chatflows on different page routes.
Also, neither window.HubSpotConversations.widget.load() nor window.HubSpotConversations.widget.refresh(); should be included within the _hsq.push() method, which is used for the Tracking Code API. and not the Conversations Live Chat Widget API.
HubSpot live chat widgets use window.location, so they will not change unless the parameters are in the URL. It is not enough to pass the variables to setPath and then trigger widget.refresh().