Food for thought on your rivers:
Building the sphere mesh has force me to think in terms of subdivisions. It turns out that the combination of your tile locations and their corner locations gives you the centers of hexagon grid if you subdivided your existing grid once. This means that if you used those locations for the nodes of a finer navigation mesh for the pathfinding algorithm of you rivers they could move around and through tiles instead or the other. The only tricky part would be calculating path costs, but that would be simply taken care of if you extrapolated you current height map onto your finer mesh. After that none of the other logic would need to change.