Both old preemption code (2.8 and before) and new preemption code could have negative vcores while calculating resources needed to preempt.
For old preemption, you can find following messages in RM logs:
The related code is in method resourceDeficit().
For new preemption code, there are no messages in RM logs, the related code is in method fairShareStarvation().
The negative value isn't only a display issue, but also may cause missing necessary preemption.