you need to look at subtractor result to verify if it works or not and not further in your design.
The subtractor design on the adder is something I haven't seen before but looking at it now. To convert 23:0 bits unsigned to negative they have to invert each bit then add 1. They are apparently doing something clever in this addition of 1. I am still looking at it. I can see 23:0 is mapped to 24:1 implying multiply by 2 then a 1 is added at bit 0 (implying half) then another 1 is added to bit0 of other input?? implying add another 1 and so 2 is added then possibly one lsb at output is discarded implying 2/2 = 1, thus 1 is added this way. But I am still not sure completely. So you check this adder and tell us.