The part that is working can be left out for the moment, so that leaves you with
Else If :
(
[{MSFSAgent.PlaneState.Plane_Latitude}] Is Greater Than [(decLat - 1)] AND
[{MSFSAgent.PlaneState.Plane_Latitude}] Is Less Than [(decLat + 1)] AND
[{MSFSAgent.PlaneState.Plane_Longitude}] Is Greater Than [(decLong - 1)] AND
[{MSFSAgent.PlaneState.Plane_Longitude}] Is Less Than [(decLong+1)]
)
The curly braces around your variable names are unnecessary. Luckily they will be removed automatically (specifically because of this type of scenario where they are added unnecessarily), which should allow the actual variable names to be interpreted correctly.
However, what cannot work is taking a field intended for a variable name, putting parentheses in there, and attempting to perform mathematical operations.
Is it suggested anywhere in the documentation you have read, that that is possible? Do you feel that it is logical that a field labeled "Another Variable" would accept such input?
Other than that, the logic you're attempting to express seems sound.
Only the "Text" tab of condition and loop actions accepts tokens in any of its fields (which is why the topmost field is labeled "Variable Name / Token"), so you can potentially use the "{EXP:}" token in that tab to perform mathematical operations.
However, especially with decimal values I would recommend using the mathematical options within the variable datatype's action (I.E. the "Set a Decimal Value" action, in this case) instead.
E.G.
Set decimal [decLatMinimum] value to the value of [decLat]
Set decimal [decLatMinimum] to [decLatMinimum] minus 1
and so on.