I can't tell from your original posting if your trouble is with the MBPr running to hot, or with mis-adjusted fan settings ... clarification would be helpful.
If you are sure it's the former, I would suggest trying a different kernel and, if you actually use the NVidia, a different proprietary driver, that usually settles things done quick.
If it's the latter, make sure you have access to Mactel's 'Support for Linux on Apple Machines' (sudo add-apt-repository ppa:mactel-support/ppa), and install applesmc, lm-sensors and macfanctld.
Start up applesmc (sudo modprobe applesmc) and install lm-sensors for easier access and monitoring of sensors, and coretemp to allow lm_sensors access to specific sensors, the rotation speed of the fan, and the GPU temperature (just clip coretemp to the end of /etc/modules and start it up) ...
Once installed, have a look at the actual temperature readings (watch sensors), which should narrow/focus your concern.
sudo tee -a /etc/modules <<-EOF
sudo modprobe coretemp
Finally, get macfanctld to handle the fan adjustments automatically, using a more conservative configuration file as a baseline ...
Since macfanctld uses in part summarized averages to control the fans (see man macfanctld) you should exclude all sensors that report bogus readings. For a quick peek, try macfanctld -f, note the malefactors in the sensor lot, and amend the 'exclude' line accordingly. Pay particular attention to the NVidia related ones ... if you disabled the NVidia, then those readings come in as "-127" which really screws macfanctld's averages, and thus, inhibits the fans. If you don't like my trigger values for fan speed, or temperatures, set your own. Then a final service macfanctld start and you should be set.
# Config file for macfanctl daemon
# Location: /etc/macfanctld.conf
# Note: 0 < temp_X_floor < temp_X_ceiling
# 0 < fan_min < 6200
# Add sensors to be excluded here, separated by space, i.e.
# exclude: 1 7
# will disable reading of sensors temp1_input and temp7_input.
exclude: 13 17 18 19 25 32 33 34 35
# log_level values:
# 0: Startup / Exit logging only
# 1: Basic temp / fan logging
# 2: Log all sensors
If you want to keep an eye on the temps and fans' rpm for a while, set "log_level : 1", stop and restart macfanctld, and periodically check /var/log/macfanctld.log until you're satisfied, then reset the log_level.
Hope this helped
PS: Just to clarify, the exclude line in the above config file for macfanctld is set for a configuration without NVidia, i.e. i915 only. If you use the NVidia card, remember to re-enable the appropriate sensors (TG1D,TG1F,TG1d) by removing their ids from the exclude list (17,18,19), leaving you with 'exclude: 13 25 32 33 34 35'. If you're unsure, check if you get any sensible readings (i.e. NOT -127.0°C) for those three via watch sensors, and confirm their status with macfanctld -f.