Hello choodles, I believe I understand why!
as you may have noticed, set the 1st line of {location} to “Test” gets parsed correctly, in other words, skript will tell you it has been ‘loaded without any errors’. Although when skript sees {location}, it is looking for a block rather than a set of coordinates
(check this skript hub page for reference https://skripthub.net/docs/?id=978https://skripthub.net/docs/?id=978)
As you can see, it says the expression must go like this: line (number of line goes here) of (block goes here). Although specifying coordinates seems like enough skript needs you to tell it you are talking about the block of those coordinates rather than the coordinates themselves.
So rather than doing this:
set {location} to (whatever your location was)
Do this:
set {location} to block at location at (0, 0, 0)
Of course you can specify your own x, y, z coordinates that are suitable for you!
Hope that made sense!