Otherwise, you'll get a different error or the GUI won't be able to select that UTXO. Never heard or that before though.
Or it what's been said before, the wallet was corrupted/tampered.
To display your "real balance", start Bitcoin Core with -zapwallettxes argument (if your node is pruned, don't),
that will remove all your wallet's transactions and then it will rescan the Blockchain to get the "real" or updated transactions.
Note: Backup your wallet before doing so if you didn't have one; and rescanning may take a while (hours) to finish.
If you're on Windows, create a shortcut, open 'properties' and add -zapwallettxes at the end of 'Target', eg:
"C:\Program Files\Bitcoin\bitcoin-qt.exe" -zapwallettxes
Given his technical knowledge (and the errors' behavior), he must have created the transaction though the GUI.
In the console, you have the capability to do so, so that's the only way to make a transaction that will encounter that error when you're trying to sign.
But I saw that you didn't, so your wallet must have included a non-wallet-related transaction(s) into your total spendable balance.