It sounds like the ECU has limited the rev range due to a fault and/or there is a fuel supply fault. It is also possible the engine is not breathing right. In general these systems are very good for logging fault codes, have you tried another scan tool? Have you checked live data for pre supply and rail pressure, boost pressure etc.