Давайте разбираться.
我 подлежащее
教 глагол
中文 дополнение
已经 наречие
二十多年 длительность
Базовое правило:
1) Подл. - глагол - длительность
我教了二十多年。Обучал более 20 лет.
我教了二十多年了。Обучаю более 20 лет.
2) Если есть прямое доп. - надо либо дублировать глагол, либо выносить доп. в конец предложения, часто с 的.
我教中文教了二十多年(了)。
我教了二十多年(的)中文(了)。
При дублировании глагола частица 了, наречия и прочие обстоятельства располагаются перед вторым.
我教中文已经教了二十多年(了)。
3) Часто в эту грамматику относят т.н. "кратковременные" или "разовые" глаголы.
我来北京三年了。
Дословно - [с того момента, как] я прибыл в Пекин (подлежащее), [минуло] три года (сказуемое). Я в Пекине три года.
他结婚十年了。С того момента, как он поженился + минуло десять лет. Он женат 10 лет.
Обратите внимание, что:
а) такая конструкция часто описывает как бы некое состояние, т.е. не просто прибыл, а до сих пор нахожусь, не просто женился, а до сих пор женат.
б) 了 одно - в конце предложения, т.к. формально это модальное 了 изменения ситуации. Раньше не был в Пекине, а теперь с момента 我来北京 уже прошло 三年(了)。
в) Так же формально, у вас подлежащее в таких предложениях это некая ситуация (我来北京), а сказуемое -- время (三年了). Наречия, к слову, в китайском языке всегда предшествуют сказуемому, поэтому если надо добавить 已经, оно будет перед 三年了:我来北京已经三年了。
Поэтому ничего с прямым дополнением не происходит, оно не выносится и глагол не дублируется. 来 + 北京 (Пекин для глагола 来 это дополнение) 结+婚 (а это вообще слитно-раздельный глагол 离合词, который уже состоит из глагола и именной части).
Несмотря на то, что в грамматиках такая конструкция часто указывается как длительность при кратковременных глаголах, она вполне может использоваться и с другими глаголами, хотя встречаю я это нечасто. Мб это разговорное? В любом случае, наложите эту последнюю конструкцию на ваше предложение в заголовке.