Why does this OPTIMIZE FOR UNKNOWN improve my query by several seconds?
"To investigate I ran the query in SSMS..."
That's the issue.  Local variables use the density vector of statistics yielding a much better row estimate, and consequently already OPTIMIZING for UNKNOWN.  Parameterized dynamic SQL uses the histogram, which pulls the entire row count for a given section.

Look at the estimated number vs actual number of rows for each of your Paste the Plan links.
The second link has waaaayyyy better estimations than the first.

I'd deploy your SSRS query to a dev instance and run some tests as I suspect you might have performance issues.

BTW, update stats or rebuild indexes on those beast tables, if you can.

Links:
Inside the Statistics Histogram &amp; Density Vector