A 20" Bass will be able to take newly hatched Mallards. The Snapper can eat anything it can catch and would be effective against all baby waterfowl. The Canadas are your bigger worry, but they might be youngsters since they are fairly territorial as breeding adults. Since your pond is 1/2 acre, it would not normally be big enough for 2 pairs - don't take this as a guarantee! I would harass them whenever I could to encourage them to leave, but the Mallards are not a real issue.