Bulbapedia's pretty good on this, but I'll try to answer some of your questions here. When you switch blocks they'll stay like that until you switch them again. They 'level' by keeping that block out for 10 days, and some Pokemon only appear when you put certain objects/blocks of certain levels into the Safari Zone.
If you have a Sinnoh game from the 4th generation, the best method is actually to trade them to that game and train them up on the wild pokemon in the Battle Zone (the island containing the battle frontier), especially Route 227 and Stark Mountain.
The highest level wild Pokemon in the Johto remakes are the level 45-50 Pokemon in Mt. Silver and the lowest floor or Cerulean Cave.
If you don't have any Sinnoh games, your best option is to keep doing rematches with trainers, which can be found by the exclamation marks next to route names on your Pokegear map (some of those trainers just want to give you items, but most are rematches). or just keep attempting the Elite Four, even if you don't succeed (though this may drastically lower your Pokemon's happiness because of the repeated fainting).
Another option is to do Gym Leader rematches in the Fighting Dojo in Saffron City, but this is slow because you can only fight certain Gym Leaders each day, and you need to collect their phone numbers beforehand. A guide to getting the Gym Leader's phone numbers is available on Bulbapedia.After you get their phone number, call them at the correct time, and they will show up in the Fighting Dojo.
Their Pokemon are levelled up significantly. Most of the Gym leaders are in the 50-60 range, but some (Blue) go up to level 70.
Best Answer
Visiting the Haircut Brothers in Goldenrod tunnel will provide a small boost to happiness once per day.
Daisy is also available in Pallet Town from 15:00 to 16:00 for another small daily boost.
A third option is to make him fight. Leveling up provides a friendship boost, assuming you don't faint, of course. Fighting Gym Leaders and Elite 4 members will also provide a boost, independently of leveling up.
You could also try the following berries :
Those berries will raise the friendship of the Pokemon by a small amount, but will also decrease the EVs of the corresponding stat by 10, which may help if you're EV training and made a mistake. Note that these berries cannot be used if the Pokemon has 0 EVs in their corresponding skill.
Edit : A fifth option, although fairly expensive, is to give Vitamins to your Pokemon. THose will also provide a small boost, as well as 10 EVs for a stat.
Worth noting that walking around also passively increases Friendship.