Q:

Trouble adding Get-ADuser Properties in my AD powershell script

I'm having trouble adding the Get-ADUser properties to my script. 
Currently the only columns that display in my .csv file are: Domain, Group, and Username.
My goal is to get more info for each user in the groups. 
The output I want to display is: Domain, Group, Username, Display Name, Description, Phone number, & Email.
Below is my script:
$groups = Get-Content c:\temp\ADGroups.txt
$domains = (Get-ADForest).domains
foreach ($Group in $Groups) {
    $Members = foreach ($domain in $domains) {
        $Groupname = Get-ADGroup -Filter { Name -like $Group } -Server $Domain
        $Groupname |
            Get-ADGroupMember -Server $domain |
            Select @{Name="Domain";Expression={$Domain}},
                @{Name="Group";Expression={$Groupname.Name}}, Name |
            Export-Csv c:\temp\GroupsInfo.CSV -NoTypeInformation -Append
    }
}

A:

Using what you have, change it to this and give it a try...
$Groups =  (Get-Content -Path 'c:\temp\ADGroups.txt')
$Domains = (Get-ADForest).Domains

foreach($Group in $Groups)
{
    $Members = foreach ($domain in $domains) 
    {
        Get-ADGroupMember -Server $domain -Identity $Group | 
        Select -Property @{Name="Domain";Expression={$Domain}},
        @{Name="Group";Expression={$Group}},Name
    } 
    $Members
}

Updated for results run
PS C:\Scripts> $Groups =  'Administrators','Guests' #(Get-Content -Path 'c:\temp\ADGroups.txt')
$Domains = (Get-ADForest).Domains

foreach($Group in $Groups)
{
    $Members = foreach ($domain in $domains) 
    {
        Get-ADGroupMember -Server $domain -Identity $Group | 
        Select -Property @{Name="Domain";Expression={$Domain}},
        @{Name="Group";Expression={$Group}},Name
    } 
    $Members
}

# Results 

Domain          Group           Name
------          -----           ----
contoso.com   Administrators  Domain Admins
contoso.com   Administrators  Enterprise Admins
contoso.com   Administrators  Administrator
contoso.com   Guests          Domain Guests
contoso.com   Guests          Guest

The same results appear on the export as well..
$Members | Export-Csv c:\temp\GroupsInfo.CSV -NoTypeInformation -Append
psedit c:\temp\GroupsInfo.CSV

"Domain","Group","Name"
"contoso.com","Administrators","Domain Admins"
"contoso.com","Administrators","Enterprise Admins"
"contoso.com","Administrators","Administrator"
"contoso.com","Guests","Domain Guests"
"contoso.com","Guests","Guest"

I also meant to add that you cannot get these properties...
Display Name, Description, Phone number, & Email.
... from what you currently have in your code. 
You'd get the from Get-ADUser cmdlet. So, you'll have to add that segment.
updated as per OP request
$Groups =  'Administrators','Guests' #(Get-Content -Path 'c:\temp\ADGroups.txt')
$Domains = (Get-ADForest).Domains

foreach($Group in $Groups)
{
    $Members = foreach ($domain in $domains) 
    {
        $MemberInfo = Get-ADGroupMember -Server $domain -Identity $Group

        ForEach($Member in ($MemberInfo | where objectClass -eq 'user'))
        {
            Get-ADUser -Identity $Member.SamAccountName -Properties * | 
            Select @{Name="Domain";Expression={$Domain}},
            @{Name="Group";Expression={$Group}},
            SamAccountName,DisplayName,Description,OfficePhone,EmailAddress
        }
    } 
    $Members # | Export-Csv c:\temp\GroupsInfo.CSV -NoTypeInformation -Append
}

# Results

Domain         : contoso.com
Group          : Administrators
SamAccountName : Administrator
DisplayName    : Administrator
Description    : Built-in account for administering the computer/domain
OfficePhone    : 
EmailAddress   : Administrator@contoso.com

Domain         : contoso.com
Group          : Guests
SamAccountName : Guest
DisplayName    : 
Description    : Built-in account for guest access to the computer/domain
OfficePhone    : 
EmailAddress   : 

Update as per OP question
As for this...

I know its asking for a lot but, is there any way for it to work for
  nested groups?

For now, as far as I know, this is a limitation of these cmdlets. So, no native way (think parameter or switch) to get nested or indirect groups. You have to handle that on you own code. Again, at least for now.
For example doing something like this in this part of your use case might be an approach...
function Get-NestedGroupMember
{
    [cmdletbinding()]

    [Alias('gngm')]

    param
    (
        [Parameter(Mandatory,ValueFromPipeline)]
        [string]$Identity
    )

    process
    {
        $user = Get-ADUser -Identity $Identity
        $userdn = $user.DistinguishedName
        $strFilter = "(member:1.2.840.113556.1.4.1941:=$userdn)"
        Get-ADGroup -LDAPFilter $strFilter -ResultPageSize 1000
    }
}

There are always multiple ways to do thing on PS, this is just one. 
Get-NestedGroupMember -Identity 'SomeUserName' |
Select-Object -Property Name, DistinguishedName

You could even leverage this approach to do things a bit differently than what we've covered thus far, since this has access to all the objects associated with the user and you can parse those attributes / parameters / properties as needed.

