Left side of the oil flowmeter code shows 1 divided by 216. Plus+1 is all integer math, so the result is zero, which will result in zero gallons coming out of the next multiplication.

Left side of the glycol flowmeter code shows 889005 divided by 1000, which is just 889, no decimal point due to integer math. If you want high accuracy you'll need to make it u32 and work with milli-gallons (i.e. gallonsx1000, fixed-point integer math), then save that division for later, like before it's shown on a screen (when you create two separate numbers for the values for before & after the decimal).

For math like a gpm flow rate you might want to switch all the math to u32, multiply by 60 and by your conversion rate first, and divide by 1000 or whatever scaling factor last, before changing back to desired data size. Otherwise your gpm will always be some multiple of 60 (0, 60, 120, etc).

What is your expected frequency? I see you're using the IO bus, meaning the signal is coming from a remote I/O unit, correct? Which one? Check the hardware spec for the frequency and period limitations for that particular pin. I had a particularly slow pulse where I ended up using the period input instead, and really slow ones used my own direct period measurement.

To test just the signal I have forced some speed sensors and paddle wheels to the on-state and looked for the signal with the service tool. At least one has required a goofy external pull-up resistor (internal microcontroller one was too weak).