I think that’s normal because when you’re adding a 3Dmodel, you chose both the path and the model name. Note that this path/3Dmodel can be different from the 3Dmodel variable’s path. Then the path is stored in the PCB file to be called further.
The internal variables are a kind of relative path useful for pointing to the default directory where all the modules are in, whatever the absolute directory is. So when the pcb opens, it loads the modules from the stored path eventually containing the variable. If it differs from the configured one (Variable) or the specifically established one, it will find nothing. This why I’d suspect a difference in between the configured path and the PCB stored one.
I’d also suggest you to "E"dit a footprint and see what the 3Dmodel’s path is, compare it to the variable. Check as well that there’s no confusion between “-” and “_” and that there’s no space in the path. Think about the “/” and the reverted one if they are correctly applied to the libs.
If this doesn’t help you, unfortunately I don’t see any other clue for the moment.