I will tag team with my buddy Don. Don gave you the answer on that rounding issue.
The problem with the negatives for crossing midnight can be solved by subtracting not your time fields but a date time field (or calculation).
I will use formula variables to create a temporary field in the formula box for the date times of the check-in and checkout
var datetime CheckIn = ToTimeStamp([Resource Check In Date], [Resource Check In Time]);
var datetime CheckOut = ToTimeStamp([Resource Check Out Date], [Resource Check out Time]);
$CheckOut - $CheckIn
------------------------------
Mark Shnier (Your Quickbase Coach)
mark.shnier@gmail.com
------------------------------