I've heard some teachers say she's terrible with names but some say terrible at...
5jj is right, but you can't generalise that beyond names.
I'm terrible at chess/dancing... (Not 'with')
I'm terrible with women/animals... (Not 'at')
So, it's more like
at + things/activities you're bad at, say I'm terrible at Maths/sports....
with + things/activities is not so direct, say, I'm terrible with names = I'm terrible at memorizing/recalling the names of my students.
Is that right?