Well I would never have thought of it, but Les was spot on with his diagnosis. It would appear that one or more of the computers in your list either had a leading space or a trailing space. I added some trailing spaces to my list of computers and got the same error you did. By adding the code below it then ran correctly again.

Thanks Les

By adding this, it removes any of those spaces in the file
(though it's better if you didn't have spaces in the first place)
$sComputer = Trim($sComputer)

 
Try this code out now and hopefully it should work correctly on your whole list. Then you can start working on logging it.
 
Break On
Dim $SO
$SO=SetOption('Explicit','On')
$SO=SetOption('NoVarsInStrings','On')
$SO=SetOption('NoMacrosInStrings','On')

Dim $sComputers,$sComputer,$Details,$Detail
Dim $Alive,$WMIOkay,$CleanUp
$sComputers = ReadFile(@ScriptDir+'\'+'computer_list.txt')
For Each $sComputer In $sComputers
$sComputer = Trim($sComputer)
If $sComputer
$Alive = Ping($sComputer)
If $Alive
$WMIOkay = ConfirmWMI($sComputer)
If $WMIOkay
$Details = GetBIOSInfo($sComputer)
For Each $Detail In $Details
If $Detail
'BIOS for ' +$sComputer +': ' + $Detail ?
EndIf
Next
EndIf
EndIf
EndIf
??
Next

Function GetBIOSInfo(optional $sComputer)
Dim $WMIService,$BIOSItems,$BIOSName,$BIOSVersion,$SMBIOSVersion
Dim $Item, $SerialNumber, $Manufacturer, $BIOSArray[4]
$sComputer=IIf(Not $sComputer,'','\\'+Join(Split($sComputer,'\'),'',3)+'\')
$WMIService = GetObject('winmgmts:{impersonationLevel=impersonate}!'+$sComputer+'root\cimv2')
$BIOSItems = $WMIService.ExecQuery('Select * from Win32_BIOS where PrimaryBIOS = true',,48)
For Each $Item in $BIOSItems
If $Item
$BIOSName = Trim($Item.Name)
$BIOSVersion = Trim($Item.Version)
$SMBIOSVersion = Trim($Item.SMBIOSBIOSVersion)
$SerialNumber = Trim($Item.SerialNumber)
$Manufacturer = Trim($Item.Manufacturer)
EndIf
Next
$BIOSArray[0]=$BIOSName $BIOSArray[1]=$BIOSVersion $BIOSArray[2]=$SMBIOSVersion $BIOSArray[3]=$SerialNumber
$BIOSArray[4]=$Manufacturer
$GetBIOSInfo=$BIOSArray
EndFunction

Function ReadFile($file)
Dim $lf, $f, $_, $t
$lf=CHR(10)
$f=FreeFileHandle
$_=Open($f,$file)
If @ERROR Exit @ERROR EndIf
Do $t=$t+$lf+ReadLine($f) Until @ERROR
$_=Close($f)
$ReadFile=Split(SubStr($t,2),$lf)
EndFunction

Function Ping($sComputer)
Shell'%comspec% /c ping -n 1 '+$sComputer+' >nul'
$Ping = NOT @ERROR
EndFunction

Function ConfirmWMI(optional $sComputer)
Dim $objWMIService,$objWMISetting,$colWMISettings
$sComputer=IIf(Not $sComputer,'','\\'+Join(Split($sComputer,'\'),'',3)+'\')
$objWMIService = GetObject('winmgmts:{impersonationLevel=impersonate}!'+$sComputer+'root\cimv2')
If @ERROR
$ConfirmWMI = Val('&'+Right(DecToHex(@ERROR),4))
Exit $ConfirmWMI
EndIf
$colWMISettings = $objWMIService.ExecQuery('Select * from Win32_WMISetting')
For Each $objWMISetting In $colWMISettings
$ConfirmWMI = $objWMISetting.BuildVersion
Next
Exit $ConfirmWMI
EndFunction