In order for the caller to use the PROC parameter with the table parameter, you must (unintuitively) grant permissions to execute like TVP those who call PROC ie
GRANT EXECUTE ON TYPE::[schema].[MyTVP] to [SomeRole]
Edit
I believe that I was able to replicate the problem, namely working with the minimum set of permissions granted to the user. The life step for the owner of the DBO or Schema of your TVP is to give you the following access to it so that I can use it in PROC (without this access, I could declare a free TVP variable, but not use it in PROC).
GRANT REFERENCES ON TYPE::[schema].[MyTVP] to YOURROLE
Grant link here (Obviously, you will also need CREATE PROCEDURE permission, as well as appropriate access to any objects used in PROC)
PROC consumers must also have GRANT EXECUTE approval for Proc and type in accordance with the original answer.
source share