Powershell remote script execution pattern
A couple of things I see, if it is as simple as you suggest. First is the $using: context, where you can use local variables in remote execution. For example, you could remove the parameters from your scriptblock, and not have to pass arguments to the Invoke-Command call by doing this:

$scriptBlock = {
    Import-Module C:\CreateNewObject.psm1
    CombineBothStanzas -firstStanza $using:firstStanza -secondStanza $using:secondStanza
}


Second is that if your .psm1 file has but one purpose, and that is a singular function, why not just make it a script with parameters? Then you don't have to first import it then execute it.

Contents of remote script on server c:\CreateNewObject.ps1:

Param([Parameter(Mandatory=$true)]$firstStanza,[Parameter(Mandatory=$true)]$secondStanza)
return ($firstStanza + $secondStanza).GetEnumerator() | sort -Property name


Putting both of those into use, you end up with something like:

$firstStanza=@{
    a = "Mary had"
    b = "a little"
    c = "lamb"
}

$secondStanza=@{
    d = "its fleece"
    e = "was white"
    f = "as snow"
}

$scriptBlock = {
    . C:\CreateNewObject.ps1 -firstStanza $using:firstStanza -secondStanza $using:secondStanza
}

Invoke-Command -ComputerName serverName.internalDomain.com -ScriptBlock $scriptBlock