Mark to Change the Exp of a Pokémon :
Black Version 2 :
5201E65C BDF873B4
0201E65C FAD0F7E3
D0000000 00000000
02001C00 73B4B4FF
02001FFC BDF8BCFF
02001D10 60B04801
02001D14 0000E002
02001D18 000F4240
White Version 2 :
5201E688 BDF873B4
0201E688 FABAF7E3
D0000000 00000000
02001C00 73B4B4FF
02001FFC BDF8BCFF
02001D10 60B04801
02001D14 0000E002
02001D18 000F4240
Code by M@T, you just have to change the 000F4240 by your value, as you can see this code change the experience to 1.000.000 points. If you want your Pokémon at level 50, just find the experience of it at level 100 (Bulbapedia gives you this data) and divide by 2, without forget to convert this value in hexadecimal
For your second request, if you're talking about the Max Rank code the value is normally 64. And I don't know too for the Battle Subway
If you defeat them, you just have to beat the Elite Four to have another chance to capture the trio, and they have a higher level and different moves for this second battle. You can see all details at Serebii.