Sometimes models get moved arround in the file structure for what ever reason, like the player model path you use might not be the original path the model was compiled for.
So ply:GetModel() returns something diffrent then the path you specified.
For examble a model got compiled at models/players/alyx.mdl but at some point moved to models/alyx.mdl
This now wont work since the model still knows its original location and will return it via ply:GetModel()

You can check ingame by typing this in the console and it should tell you the original path your playermodel got compiled for.
lua_run_cl print(LocalPlayer():GetModel())