Unfortunately, we do not have a tilt-compensated heading function for the accelerometer and magnetometer used on the MinIMU-9 v5. However, we hope to have an example sketch available in the future. In the meantime, you might consider adapting this tilt-compensated heading function for the LSM303, the accelerometer/magnetometer used on our older MinIMU-9 boards.
As for the values you are getting with our Serial sketch, not ever getting positive or negative values is not very unusual. The range of values that you might get for each magnetometer axis depends on the particular amount of magnetometer bias for each axis for your particular unit. If it is the case where an axis never outputs raw values that are negative (or positive), then the bias for that particular axis is so large that the entire range for that axis is above (or below) zero.
I recommend running our Calibrate sketch. The minimum and maximum values that the calibration program prints show the amount of magnetometer bias for your particular unit, and you can use those values to shift or offset your raw readings in a way that centers their output around zero.
You can look through our LSM303 Arduino library’s header file to see how we compute heading. Note that you also need readings from the accelerometer to compute a tilt-compensated heading.