The columns in each of the data sets that you're trying to UNION have to match. In your case, they don't: you have one more column in your first SELECT than you have in your second and third.
tblAssets.AssetID, tblAssets.AssetID, tblAssets.AssetID,
tblAssets.AssetName, tblAssets.AssetName, tblAssets.AssetName,
tblAssets.Domain, tblAssets.Domain, tblAssets.Domain,
tsysAssetTypes.AssetTypename As AssetType, tsysAssetTypes.AssetTypename As AssetType, tsysAssetTypes.AssetTypename As AssetType,
tblAssets.Username, tblAssets.Username, tblAssets.Username,
tblAssets.Userdomain, tblAssets.Userdomain, tblAssets.Userdomain,
tsysAssetTypes.AssetTypeIcon10 As icon, tsysAssetTypes.AssetTypeIcon10 As icon, tsysAssetTypes.AssetTypeIcon10 As icon,
tblAssets.IPAddress, tblAssets.IPAddress, tblAssets.IPAddress,
tsysIPLocations.IPLocation, tsysIPLocations.IPLocation, tsysIPLocations.IPLocation,
tblAssetCustom.Manufacturer, tblAssetCustom.Manufacturer, tblAssetCustom.Manufacturer,
tblAssetCustom.Model, tblAssetCustom.Model, tblAssetCustom.Model,
tsysOS.OSname As OS, tblMacOSInfo.SystemVersion As OS, tblLinuxSystem.OSRelease As OS,
tblAssets.SP, tblAssets.SP, tblAssets.SP,
tblAssets.Lastseen, tblAssets.Lastseen, tblAssets.Lastseen,
tblAssets.Lasttried, tblAssets.Lasttried, tblAssets.Lasttried,
tblSoftwareUni.softwareName As Software, tblSoftwareUni.softwareName As Software, tblSoftwareUni.softwareName As Software,
tblSoftware.softwareVersion As Version, tblMacApplications.Version As Version, tblLinuxSoftware.Version As Version,
tblSoftwareUni.SoftwarePublisher As Publisher, tblSoftwareUni.SoftwarePublisher As Publisher, tblSoftwareUni.SoftwarePublisher As Publisher,
tblSoftware.Installdate As [Install date],
tblSoftware.Lastchanged tblMacApplications.LastChanged tblLinuxSoftware.LastChanged
If you have nothing to correspond to the first in the second and third SELECTs, use NULL as a filler.