*<sub>[Community wiki answer](https://dba.stackexchange.com/help/privileges/edit-community-wiki):</sub>*

Start by fixing the [Key Lookups](https://www.brentozar.com/blitzcache/expensive-key-lookups/). They're mostly for predicate evaluation, and the estimated number of executions is bananas.

Unless old data is being archived, you will always run into trouble with this query, since you are selecting everything stored before today. No matter how much you tune, one day it will be too much to handle.  A quick hint: notice the "select distinct", quite an important part of the view (120 lines).  A "select distinct" shows you're selecting too much an have to throw the doubles away.  Run that part without the distinct, find out where the doubles come from and find a way to avoid them.