--- Quote Start ---
Then the carry out bit in LPM_ADD_SUB does not work properly?
--- Quote End ---
carry out is not shown in any of your simulation results. How will you know that it's working uncorrectly.
The problem is that you are adding two signed 16 Bit numbers and get a result, that exceeds the 16 Bit number range. But don't consider this overflow in your code and get's overflows as shown in your waveform. carry out could inform you about the overflow, but you're ignoring it.
As suggested, the adder input data has to be either extended to 17 bits or scaled down one bit (by an arithmetical right shift) to avoid an overflow.
Checking the expectable results by pencil and paper or a pocket calculator can help to understand how binary arithmetic works.