While attempting to set up several command block to alter custom model data for items put into item frames, I found that once /data had established it's first target in a session it would not fin another. I restarted game and targeted a distant item frame first and it broke the one I had working already as it kept targeting the one I manually located earlier.
The attached screenshot shows the command used to target the item frame behind the pointer, but the output shows that it's targeting an item frame numerous blocks away.
Addendum, when using an entity's unique identifier (73a1a4ba-7869-4fb9-92b4-ccce70ddda6a for example) the item frame can be targeted. But when new coordinates are used as an argument it continues to return the first target, even when it does not match the new arguments. This is the case for both player executed and command block executed commands.