In a first approach you might think that it would be enough to change the credentials associated with BizTalk service using the following script:
sc.exe config "Service Name" obj= "DOMAIN\User" password= "password"
However if we do this, we will obtain configuration inconsistencies between the services and settings in BizTalk administration console, as you can see in the picture:

What might cause unforeseen errors. So, to change user credentials of BizTalk Host Instances we need to follow a different approach.
To Change user credentials of a BizTalk Host Instance
//Getting the list of BizTalk Host Instances objects
$hosts = Get-WmiObject MSBTS_HostInstance -namespace 'root/MicrosoftBizTalkServer'
//Listing existing BizTalk Host Instances names
$hosts | ft HostName
//Getting/Filter the desired instance
$MyHost = $hosts | ?{$_.HostName -eq "BizTalkDemoApplication"}
//Change BizTalk Host Instance user credentials
$MyHost.Install("DOMAIN\User", "password", "true")
Or simply
$hostApp = gwmi -n 'root/MicrosoftBizTalkServer' -q 'select * from MSBTS_HostInstance where HostName="BiztalkDemoApplication"'
$hostApp..Install("DOMAIN\User", "password", "true")
