A few things to consider:
Caller name is not always transmitted by the provider. It may be or may not be and might be an added cost option, so you need to check and ensure that Caller Name is included in your plan. You can also check the server log to see if the name is being included. This is apparently is not the case given your description, but have listed it anyway in the event that others may see the post and have a similar issue.
If not included, then the caller name may still show if the name is in any of the 3CX and/or phone phone books. Inbound number to name mapping may be occurring which then allows for the name to be displayed. If the name is non-existent in the books, then it will not display.
There may not be enough display space to show all the desired info. As you apparently have the rule showing, this is taking up display real estate that might otherwise then allow the name to be shown. You might try to shorten the rule name or even turn off that feature to see if some of the name then appears.