I had a query with a set of parameters that needed to be run multiple times with different parameters, so I wrapped it in a table-valued function.
That table valued
Have you tried this variation - basically you push the call to the function to happen locally on the remote box:
EXEC REMOTE_SERVER_NAME.db_name..sp_executesql N'SELECT * FROM dbo.MyTableValuedFunctionName();';