1. The very FIRST line that the printer spits out is the date the firmware was compiled - you will have to scroll backup in repetier-hosts log window to see it. As to which 'version' it is - both versions you referenced have the same internal versions, so the only way to tell is based on you recalling which version you last compiled and when. It looks like this, with obviously whatever date you compiled your firmware in place of the one listed here. I've bolded the key lines...
MyMarlin wrote:00:03:58.951 : echo: External Reset
00:03:58.951 : Marlin 1.0.0
00:03:58.951 : echo: Last Updated: Feb 9 2014 15:12:46 | Author: Adrian/Lawsy/Rincewind/Tealvince
00:03:58.951 : Compiled: Feb 9 2014
00:03:58.951 : echo: Free Memory: 2894 PlannerBufferBytes: 1232
00:03:58.951 : echo:Stored settings retrieved
00:03:58.951 : echo:Steps per unit:
00:03:58.951 : echo: M92 X160.00 Y160.00 Z400.00 E990.00
00:03:58.951 : echo:Maximum feedrates (mm/s):
00:03:58.951 : echo: M203 X3000.00 Y3000.00 Z50.00 E400.00
00:03:58.951 : echo:Maximum Acceleration (mm/s2):
00:03:58.951 : echo: M201 X2220 Y2220 Z300 E300
00:03:58.951 : echo:Acceleration: S=acceleration, T=retract acceleration
00:03:58.951 : echo: M204 S3000.00 T3000.00
00:03:58.951 : echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s), Z=maximum Z jerk (mm/s), E=maximum E jerk (mm/s)
00:03:58.951 : echo: M205 S0.00 T0.00 B20000 X60.00 Z0.60 E5.00
00:03:58.951 : echo:Home offset (mm):
00:03:58.951 : echo: M206 X0.00 Y0.00 Z0.00
00:03:58.951 : echo:PID settings:
00:03:58.951 : echo: M301 P15.44 I0.51 D116.62
00:04:00.160 : echo:SD card ok
00:04:00.261 : FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:https://github.com/ErikZalm/Marlin/ PROTOCOL_VERSION:1.0 MACHINE_TYPE:Rumba EXTRUDER_COUNT:1
I *could* increment the version number in our versions - however - that will mean that we are 'ahead' of the mainline Marlin, as all its versions are perpetually 1.0.0 at the moment (technically, they are all still 1.0 RC's...) .. I am not keen to version a fork higher than the mainline base from which it derives... that will just lead to all sorts of poo... 
2. Marlin can't control the MOSFET's current direction or polarity - if it could, it would be awesome
As to if the pins are different; The printrboard section of pins.h of my marlin is identical to Solidoodles much older version - EXCEPT for the SDSS pin, which has a long sordid tale unto itself (teach people to share Y-Stops with SS pins ... ); So in short - whatever is going on with your PWM fan is unrelated to the firmware;
My Marlin:
#if MOTHERBOARD == 8 || MOTHERBOARD == 81
#define KNOWN_BOARD 1
#define AT90USB 1286 // Disable MarlinSerial etc.
#ifndef __AVR_AT90USB1286__
#error Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu.
#endif
#define LARGE_FLASH true
#define X_STEP_PIN 0
#define X_DIR_PIN 1
#define X_ENABLE_PIN 39
#define Y_STEP_PIN 2
#define Y_DIR_PIN 3
#define Y_ENABLE_PIN 38
#define Z_STEP_PIN 4
#define Z_DIR_PIN 5
#define Z_ENABLE_PIN 23
#define E0_STEP_PIN 6
#define E0_DIR_PIN 7
#define E0_ENABLE_PIN 19
#define HEATER_0_PIN 21 // Extruder
#define HEATER_1_PIN -1
#define HEATER_2_PIN -1
#define HEATER_BED_PIN 20 // Bed
#define FAN_PIN 16 // Fan
// You may need to change FAN_PIN to 16 because Marlin isn't using fastio.h
// for the fan and Teensyduino uses a different pin mapping.
#if MOTHERBOARD == 8 // Teensylu
#define X_STOP_PIN 13
#define Y_STOP_PIN 14
#define Z_STOP_PIN 15
#define TEMP_0_PIN 7 // Extruder / Analog pin numbering
#define TEMP_BED_PIN 6 // Bed / Analog pin numbering
#else // Printrboard
#define X_STOP_PIN 35
#define Y_STOP_PIN 8
#define Z_STOP_PIN 36
#define TEMP_0_PIN 1 // Extruder / Analog pin numbering
#define TEMP_BED_PIN 0 // Bed / Analog pin numbering
#endif
#define TEMP_1_PIN -1
#define TEMP_2_PIN -1
#define SDPOWER -1
#define SDSS 14
#define LED_PIN -1
#define PS_ON_PIN -1
#define KILL_PIN -1
#define ALARM_PIN -1
#ifndef SDSUPPORT
// these pins are defined in the SD library if building with SD support
#define SCK_PIN 9
#define MISO_PIN 11
#define MOSI_PIN 10
#endif
#endif // MOTHERBOARD == 8 (Teensylu) or 81 (Printrboard)
Solidoodles Marlin:
#if MOTHERBOARD == 8 || MOTHERBOARD == 81
#define KNOWN_BOARD 1
#define AT90USB 1286 // Disable MarlinSerial etc.
#ifndef __AVR_AT90USB1286__
#error Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu.
#endif
#define X_STEP_PIN 0
#define X_DIR_PIN 1
#define X_ENABLE_PIN 39
#define Y_STEP_PIN 2
#define Y_DIR_PIN 3
#define Y_ENABLE_PIN 38
#define Z_STEP_PIN 4
#define Z_DIR_PIN 5
#define Z_ENABLE_PIN 23
#define E0_STEP_PIN 6
#define E0_DIR_PIN 7
#define E0_ENABLE_PIN 19
#define HEATER_0_PIN 21 // Extruder
#define HEATER_1_PIN -1
#define HEATER_2_PIN -1
#define HEATER_BED_PIN 20 // Bed
#define FAN_PIN 16 // Fan
// You may need to change FAN_PIN to 16 because Marlin isn't using fastio.h
// for the fan and Teensyduino uses a different pin mapping.
#if MOTHERBOARD == 8 // Teensylu
#define X_STOP_PIN 13
#define Y_STOP_PIN 14
#define Z_STOP_PIN 15
#define TEMP_0_PIN 7 // Extruder / Analog pin numbering
#define TEMP_BED_PIN 6 // Bed / Analog pin numbering
#else // Printrboard
#define X_STOP_PIN 35
#define Y_STOP_PIN 8
#define Z_STOP_PIN 36
#define TEMP_0_PIN 1 // Extruder / Analog pin numbering
#define TEMP_BED_PIN 0 // Bed / Analog pin numbering
#endif
#define TEMP_1_PIN -1
#define TEMP_2_PIN -1
#define SDPOWER -1
#define SDSS 8
#define LED_PIN -1
#define PS_ON_PIN -1
#define KILL_PIN -1
#define ALARM_PIN -1
#ifndef SDSUPPORT
// these pins are defined in the SD library if building with SD support
#define SCK_PIN 9
#define MISO_PIN 11
#define MOSI_PIN 10
#endif
#endif // MOTHERBOARD == 8 (Teensylu) or 81 (Printrboard)
Re the P.S : Did you enable the hystersis options in the Configuration.h file ? you need to enable the Z_Wobble et al in Configuration.h for it to do anything.. and Re the Heated Bed - Did you enable as per the Configuration.h file PIDTEMPBED; the defaults in the file for the PID are based on older beds - make sure to run the referenced M303 E-1 C8 S95 command (or susbstitute S95 as desired..) . Update the values in the file, recompile, reupload.
However - If you didn't enable the PIDTEMPBED - then the Firmware has nothing to do with your Bed heatup - because it simply turns on the MOSFET then and thats that... so if its now not performing as the same, something physical has changed - be it your Powersupply, the MOSFET going, bad physical connection, or the bed itself. Given the MOSFET for your PWM Fan is now misbehaving - I'd be checking for a short or something somewhere as well...