При использовании множественных связей (1:N, M:N) параметр limit ограничивает количество связей.
fetch и fetchAll получают все результаты, в то время как fetchObject может получать несколько результатов объекта (при множественныъ связях). При незнании этого conunt($rs->fetchAll()) - может возвращать неожиданный результат
Метод getFieldname работает только для описанных в getMap полей. Используйте $rs->fetchObject()->get('FIELD_NAME') для runtime reference (или $entity->addField вместо runtime)