You can't report on the 21 April when you should leave the country on the 22 March (unless you request for an extension, but this is not the case at this stage). So the officer was clearly wrong, the law doesn't assume that guy will stay after the 22 March.
Strange that the embassy didn't requested a new passport before issuing your tourist visa. Passports are supposed to be valid 6 months after intended stay.
When you get a retirement visa through an agent without having the required 800,000 baht in a bank account, this is clearly illegal and couldn't be obtained without the agent paying some tea money to an immigration officer. That's just helping corruption.