A lot of the stuff about how 'the same names come up again and again in court/as troublemakers/in child protection work, etc' is probably due to confirmation bias.
Take for example 'the dreaded Calum'. Calum is a really popular name now so there are loads of Calum's. This makes the odds of a Calum being the 'naughty boy' in your/your child's class higher (than for less popular names). You take notice when Calum does turn out to be the 'naughty boy' (in your opinion) because it confirms your own stereotype (and in doing so reinforces your stereotype). You're also more likely to interpret Calum's behaviour as 'naughty' where for a child you don't negatively stereotype based on name you may well interpret the behaviour in different ways. This also reinforces your stereotype.
Whereas when little Thomas (a name you stereotype positively) is badly behaved, it doesn't reinforce your stereotype and you see it as an exception. (The same for when Calum's behave well; you see this as an exception to the stereotypical rule, and therefore disregard it). When Thomas is well behaved, it reinforces your stereotype.
It does not, however, mean that Calums are actually more naughty than children with names you approve of.
The fact that so many Irish names are considered déclassé on this is probably a hangover from the kind of anti-Irish racism that was so prevalent in the 1960s. Instead of putting up 'No Irish' signs people sneer at children being given Irish names. Same for the sneering at names generally associated with black communities, and names associated with the working classes.
The answer isn't for people to stop giving their children names associated with cultures that differ from middle class cultures in the Home Counties though. It really is for people to really reflect on what their prejudices are and stop pretending it's just about names...