Compare value from xml node that contains decimal
It looks like you've got the wrong path in your where predicate.  If I do this, it works:

IF OBJECT_ID(N'dbo.x', N'U') IS NOT NULL
DROP TABLE dbo.x;
CREATE TABLE dbo.x
(
    xm xml
);
INSERT INTO dbo.x (xm)
SELECT N'&lt;Document&gt;
   &lt;PolicyId&gt;0&lt;/PolicyId&gt;
  &lt;ChangeAmount&gt;1.4-&lt;/ChangeAmount&gt;
  &lt;PolicyTerm&gt;
    &lt;OutstandingBalance&gt;35.04+&lt;/OutstandingBalance&gt;
  &lt;/PolicyTerm&gt;
  &lt;OriginalCollectionAmount&gt;36.44+&lt;/OriginalCollectionAmount&gt;
&lt;/Document&gt;';

SELECT x.xm.value('(/Document/PolicyTerm/OutstandingBalance)[1]', 'nvarchar(20)')
FROM dbo.x


╔══════════════════╗
║ (No column name) ║
╠══════════════════╣
║ 35.04+           ║
╚══════════════════╝

Testing:    

SELECT *
FROM dbo.x
WHERE (x.xm.value('(/Document/PolicyTerm/OutstandingBalance)[1]', 'nvarchar(20)') &lt;&gt;
     (x.xm.value('(/Document/OriginalCollectionAmount)[1]', 'nvarchar(20)')))


╔═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
║                                                                                                       xm                                                                                                        ║
╠═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╣
║ &lt;Document&gt;&lt;PolicyId&gt;0&lt;/PolicyId&gt;&lt;ChangeAmount&gt;1.4-&lt;/ChangeAmount&gt;&lt;PolicyTerm&gt;&lt;OutstandingBalance&gt;35.04+&lt;/OutstandingBalance&gt;&lt;/PolicyTerm&gt;&lt;OriginalCollectionAmount&gt;36.44+&lt;/OriginalCollectionAmount&gt;&lt;/Document&gt; ║
╚═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝


In your code, Payload.value('(/Document/OutstandingBalance)[1]', 'nvarchar(20)') should be Payload.value('(/Document/PolicyTerm/OutstandingBalance)[1]', 'nvarchar(20)')