Take heart! Plenty of very smart and capable people bounce off this sort of thing. I think it's a matter of temperament; some folks are wired for strict typing and struggle to see the value of dynamic typing, other folks vice versa. It's always valuable to walk a mile in the other shoes, but here we are.
For the record, it's not immutability that cause "the record problem" and bring these complex ideas, it's immutability + strict typing. Clojure's weak typing and tree-based immutability makes the record problem just as clean as the OO version:
(assoc-in person [:personAddress :addressCity] city)
returns a new record with the new city, and any other function with a reference to 'person' would not see it changed.