Как документировать код, если добавил свой функционал?
Я думаю, у тебя есть несколько вариантов
Первый. Просто описать что сделал, откуда взял.
Второй, описать все полностью с нуля, как будто ты сделал новый продукт.
И третий. Описать подробно модуль который ты переделал и сделать к нему примечание, что ты изменил зависимые классы.
Как поступить, зависит от ситуации, кто будет читать твою документацию и как часто ты будешь обращаться к ней. И на сколько важный продукт ты сделал.
Для себя, я бы выбрал первый вариант. Если для небольшой фирмы, то я бы выбрал третий. Думаю самый оптимальный третий.
Второй вариант, это если все очень строго и много бюрократии.
Я просто сам постоянно пишу документацию. И исхожу из ситуации. 
То есть везде нужна золотая середина и умение лавировать ситуацией.
0. Прочитать лицензионное соглашение/условия использования
1. Выполнить условия
2. Profit