Speaking as an architect who uses other BIM software than this ‘at the coal face’, I wanted to add a bit more of a real world example onto your explanation. BIM is a system which is meant to make the notes (semantic information) that are added to the industry standard diagrams (plans, sections and elevations)[0] stay pointed at the right thing with the right information in them. It also auto generates many of the lists of components that we use.

It makes some things easier; a quick video call to the engineer with a screen share of a 3d model to ask about something makes it much easier to talk about and resolve issues. It makes other things harder; generating the industry standard diagrams that we all use to analyse information is slower than just drawing them in 2d. You get 80% of the way there a lot faster but then you have to deal with all the situations that the software designers didn’t anticipate when they designed the wall, slab, roof, door and window tools and often the only way to do this is to drop objects back to ‘dumb’ geometry and rework them. You then have to go back to manually labelling them in the 2d 'diagrams' or trying to figure out how to tag them semantically with a specially generated tag so that they show up correctly in the auto generated schedules and notes. I personally find the BIM way of working more stressful as you never know when you are going to get caught out by a software glitch that halts your production, it is a lot more unpredictable than brainlessly slogging through drawing a bunch of 2d drawings. I think these are the challenges you are referring to.

So lets say I'm writing a 'Door schedule', a list of all the doors on the project, when I started my career you would go through a project with the paper plans and type up a list in excel with all the specifications manually, now when you place a door object it is tagged with various information which you can query to auto generate this list of doors. However, the doors will have been placed in the BIM model quite early on in the process when we were just thinking about where the doors needed to be and which way they opened. We were not thinking about which manufacturer they were from, what the finishes and hardware are going to be and fire ratings etc at that stage. So to get this list to autogenerate correctly you have to go back to each door and locate the correct fields from among hundreds of others in a clunky data entry interface to enter this information to get it to query correctly and show up in your list of doors. It is database data entry consistency problem. The list of all the doors shows up instantly; 2 mins work to get a list with all this detailed information set up. 2 hours later, I've managed to figure out the tagging system to get it to list the last weird edge case on door D25. I could have typed the whole thing faster in excel, but now that the information is there, it is tagged to that door and as long as no-one duplicates it and moves it to another location the door schedule will still be correct... So every time you re-issue this schedule, you still need to go through it door by door and check against the plan to see what its specification needs to be and check if it is still correct. You can't trust the automatic door schedule to be correct in case somebody with ADHD (a lot of architects including me) forgot to check and edit all the semantic information after they made the visual change they wanted.

Separating the process of adding written information to the drawing from the process of drawing the thing has always been a problem with CAD but with BIM it is even worse because there is a greater disconnect. In my experience BIM reduces problems with geometry not being correctly thought out and things not fitting together but it increases problems with mislabelled information because there is a greater mental distance between the thing you edit and where the information eventually ends up being presented.

I'm a software minded person I have a >20k LOC python BIM customisation project I've written myself and I've coded some embedded C in the past but I struggle to get the semantic tagging to work efficiently; it is much slower than just going to the 2d output drawing and adding a dumb note. I've coded my own BIM door and window objects for my CAD package to try and streamlines this and when I can use them they way I want to it works great, but I do find myself going back and coding more features on pretty much every project I work on to allow for a situation I hadn't anticipated when I first wrote the code.

It also raises an ethical issue if you are billing hourly because how many hours of troubleshooting your own BIM software can you reasonably bill for?

BIM has the same issues as other areas where bureaucracy has been computerised into a rigid process; it is very poor at edge cases and buildings are full of these. CAD software really needs a huge investment in deep interaction design psychology and research to resolve these issues.

[0]These are never going away because the are a very efficient abstraction to use for analysis and they need a clear presentation to be readable; you wouldn't ask an electrical engineer to give up circuit diagrams in favour of a 3d model.