My colleague on our electronic controls team programmed just a high/low automatic shifting function, and I was involved in testing.
One tip I'll give is that in between the states of high and low he also did transitional states. So there's a state for low gear, for when shifting from low to high, high gear, and a state for shifting from high to low. The purpose of the transition states is that they ignore changes in the vehicle speed that take place while shifting because, of course, when you go to shift from low to high the vehicle speed might drop slightly while shifting.
Another tip, which might be pretty obvious, is when you shift you need to change your propel signal to maintain the same speed probably. If the gear ratio is double for when you're in high gear then you probably need to cut your propel signal in half when you shift up.
Another one was the fact that a lot of drivers won't maintain a steady foot on the pedal during shifting which can be troublesome, so for the transition states I mentioned above I think we ignored operator pedal input for just the very shifting transition states. Of course doing this is a pretty big deal, but the duration of those transition states is based on a timer set at like 100-200ms.
I haven't done much of this otherwise, but this worked for us.