I finally figured it out. I didn't realize I needed a sleep for a few seconds.
$Shell = New-Object -ComObject Shell.Application
$Shell.Open("C:\Folder1")
$Shell.Open("C:\Folder2")
$Shell.Open("C:\Folder3")
$Shell.Open("C:\Folder4")
Start-Sleep -Seconds 10 # Wait for the processes to complete
$Shell.Windows()[0].Left = -3847
$Shell.Windows()[0].Top = -273
$Shell.Windows()[0].Width = 1934
$Shell.Windows()[0].Height = 1063
$Shell.Windows()[1].Left = -1927
$Shell.Windows()[1].Top = -273
$Shell.Windows()[1].Width = 1934
$Shell.Windows()[1].Height = 1063
$Shell.Windows()[2].Left = -1927
$Shell.Windows()[2].Top = -1329
$Shell.Windows()[2].Width = 1934
$Shell.Windows()[2].Height = 1063
$Shell.Windows()[3].Left = -3847
$Shell.Windows()[3].Top = -1329
$Shell.Windows()[3].Width = 1934
$Shell.Windows()[3].Height = 1063