The problem is your data is not normalized. You can use the below query to find duplicate account numbers, you can stage the results or nest this in a subquery to join back to the original data to grab Customer Names and Card Numbers. Another problem with your query is that you include the card number and name in the group by, which means if two different people or cards share an account number, then you will not detect it.
Edit: This is actually a pretty common pattern I've found when doing duplicate searches. You have to detect the duplicates by grouping only on the column you want to find duplicates of, and then you have to nest that in a subquery or join to go back and find out what other data was related.
Select AccountNumber From
(Select [CARD NUMBER],[CUSTOMER NAME],[ACCT NBR 1] as AccountNumber
From DebitCardData.dbo.['ATM Checking Accts - Active$']
UNION
Select [CARD NUMBER],[CUSTOMER NAME],[ACCT NBR 2] as AccountNumber
From DebitCardData.dbo.['ATM Checking Accts - Active$']
) as NormalizedDebitCardData
GroupBy AccountNumber
Having Count(*)>1
To get back all the other columns in the result:
Select [CARD NUMBER],[CUSTOMER NAME],[ACCT NBR 1], [ACCT NBR 2]
From DebitCardData.dbo.['ATM Checking Accts - Active$']
Inner Join
(Select AccountNumber From
(Select [CARD NUMBER],[CUSTOMER NAME],[ACCT NBR 1] as AccountNumber
From DebitCardData.dbo.['ATM Checking Accts - Active$']
UNION
Select [CARD NUMBER],[CUSTOMER NAME],[ACCT NBR 2] as AccountNumber
From DebitCardData.dbo.['ATM Checking Accts - Active$']
) as NormalizedDebitCardData
Group By AccountNumber
Having Count(*)>1) as AccountNumberDuplicates
On AccountNumberDuplicates.AccountNumber = [ACCT NBR 1] or AccountNumberDuplicates.AccountNumber = [ACCT NBR 2]
Order By AccountNumberDuplicates.AccountNumber