Welcome to the community, @Toby_Murdock! :grinning_face_with_big_eyes:
The lookup field is the source of the problem. Long story short, lookup fields will often (more often than not) return an array when queried by a formula, even when that array only contains a single value. That means that you end up comparing an array to a date, which doesn’t work.
To make this work, change your lookup field to a rollup field. Rollup fields are very similar to lookup fields, but they add an aggregation formula that lets you process the array into something more useful. In this case, you could use an aggregation formula of MAX(values)
. This is often good for finding the largest date in a collection of rolled-up dates, but it will also work with a single date to return just the date itself, which can then be used to compare against other dates in other fields.