Just my opinion - these incidents are in no small part the fault of the railroad.
I'd opine that in most cases, the crossing was once a level crossing - no hump at all. Railroads tend to dump more ballast from time to time, raising the level of the tracks, as opposed to removing some of the ballast. So you end up with the hump.
Of course, there are numerous factors involved, local topography, etc.
And that doesn't excuse the driver, GPS stuff, etc, from placing the truck in that situation.