Ditto's unique ability to breed with everything despite being genderless is a property of its egg group, but it won't actually produce the right eggs if you give something outside of slot x84 the Ditto egg group- you'll just get a bunch of Bulbasaur if there's no female involved. To fix this, change the byte at x70816 from x84 to the slot you want to behave like Ditto.
While I'm pointing out breeding quirks that are of no use to anyone:
An egg that would hatch as the byte at x70858 (normally x1D, female nidoran) has a 50% chance to instead hatch as the byte at x7086E (normally x20, male nidoran).
Furthermore, an egg that would normally hatch as the word at x708C4 (normally x183, Illumise) has a 50% chance of hatching as twice the byte at x70888 (normally xC1, half of Volbeat's index number).
Volbeat and male Nidoran family members do not produce their female counterparts when breeding with Ditto in Gen 3.
There's a second Ditto check at x70894 - this one doesn't affect the child's species but it probably is important for inheritance.
If an egg would hatch to be double the byte at x7074C (xB4, half of Wynaut's index number) and a parent is not holding the item at x7077C and x70780 (xDD, Lax Incense), the baby will become the byte at x70784 (xCA, Wobbuffet).
If an egg would hatch to be double the byte at x70754 (xAF, half of Azurill's index number) and a parent is not holding the item at x70792 and x70796 (xDC, Sea Incense), the baby will become the byte at x7079A (xB7, Marill).
Azurill's index number is constructed a second time at 7078A- I'm not exactly sure *why* it's needed but if the baby's index number doesn't match it the game won't consider changing it to a Marill.