How can I call a remote User Defined Function with Parameters?
You can use OPENQUERY. You just have to use dynamic SQL to build the OPENQUERY call

DECLARE @sql nvarchar(4000);

SET @sql = 'SELECT * FROM OPENQUERY(linkedServerName, 
                          ''SELECT @someValue = dbo.[SomeUDF](' + CAST(@id etc) + ')'')';
EXEC (@sql)


However, you can't build this into a larger query on the local server. 
UDFs + linked servers + parameters just don't play nice together...