A Royal Navy veteran says he was left shocked after being told he must repay £18,000 following a pension overpayment error that went undetected for years.