I might have stumbled upon a solution. Instead of using Save or SaveAS and trying to pass parameters, I used the Workbook.Close Method and passed True as a parameter which solved my problem
Please note that if others are making changes on Excel online, this might result in merge issues. There's a checkin() and checkout() method that I'm trying to implement which should take care of this problem: More details here opening-an-excel-document-from-sharepoint-using-powershell
$file="test - Copy v4.xlsm"
$x1 = New-Object -ComObject "Excel.Application"
$x1.displayAlerts = $false # don't prompt the user
$x1.Visible = $false
$wb = $x1.workbooks.Open($file)
$x1.Run('MACRO_NAME')
$wb.Save()
$wb.Close($true)
$x1.Quit()
Remove-Variable wb,x1