First, the Recording In Progress Screen:
Line 1 (It's long...I know, but if you copy and paste, make sure not to include the last space in the line, it should end with a ")"
Recording For:$Right($dll(round.dll,1,$dll(demo.dll,3,.6,$dll(demo.dll,2,$dll(demo.dll,5,$dll(demo.dll,5,0,$dll(cut.dll,1,1#1,$dll(demo.dll,3,$File("C:\Program files\devnz\gbpvr\inprogress.txt",5),$dll(demo.dll,4,5,3)))),$File("C:\Program Files\devnz\gbpvr\inprogress.txt",4)),$dll(demo.dll,5,$dll(demo.dll,3,$Time(nn),$dll(demo.dll,4,5,3)),$Time(hh)))),0)min,$6%)
Line 2
-$File("C:\Program Files\devnz\gbpvr\inprogress.txt",1)-
Line 3
-$File("C:\Program Files\devnz\gbpvr\inprogress.txt",2)-
Line 4
Complete at $File("C:\Program Files\devnz\gbpvr\inprogress.txt",3)
[EDIT: There was a problem with the first line that I fixed, it can now be copy and pasted into smartie.]

The first line of this is long because it takes the finished recording time from a file (that I'll talk about later), parses it into hours and minutes, converts these numbers into decimal (base 10 not base 60) and subtracts to present time from the finish time. This was the only way I could think of to get constantly updated remaining time.
The text file has this format:
Title
SubTitle
EndTime
{EndTime:HH}
{EndTime:mm}
Second, the upcoming recordings screen:
Next Recording:
-$dll$File(C:\program files\devnz\gbpvr\pending.txt,1)-
$File(C:\program files\devnz\gbpvr\pending.txt,2)
$File(C:\program files\devnz\gbpvr\pending.txt,3)

Pretty simply just reading from text files. The text files for GBPVR come from a command line utility that accesses the GBPVR database directly, and is run in parallelprocessing.bat to get the current recording and upcoming recordings, and the inprogress.txt is deleted in postprocessing.bat. This great utility was expertly made by Mister Slimm, and can be found here.
The text file has this format:
Title
StartTime - EndTime
Date
Finally, the ZoomPlayer Screen:
line 1
-$dll(splittitle.dll,11,$dll(cut.dll,1,17#50,$dll(dvdplug.dll,1,1,param2)),-)-
line 2 (flashes current time once every ten seconds with enallax.dll)
-$dll(sandr,1,$dll(enallax,12,$dll(splittitle.dll,12,$dll(cut.dll,1,17#50,$dll(dvdplug.dll,1,1,param2)),-),$Time(h:nn am/pm)),)-
line 3
-$dll(sandr,1,$dll(splittitle.dll,13,$dll(cut.dll,1,17#50,$dll(dvdplug.dll,1,1,param2)),-),)-
line 4 (another long one)
$dll(cut.dll,1,1#5,$dll(splittitle.dll,11,$dll(splittitle.dll,11,$dll(dvdplug.dll,1,1,param2),-),/))$CustomChar(7,1,3,7,15,15,7,3,1)
$Chr(135)$Bar($dll(cut.dll,1,1#2,$dll(sandr.dll,1,$dll(splittitle.dll,11,$dll(splittitle.dll,11,$dll(dvdplug.dll,1,1,param2),-),/),)),
$dll(cut.dll,1,1#2,$dll(sandr.dll,1,$dll(splittitle.dll,12,$dll(splittitle.dll,11,$dll(dvdplug.dll,1,1,param2),-),/),)),8)$CustomChar
(8,16,24,28,30,30,28,24,16)$Chr(136)$dll(splittitle.dll,12,$dll(splittitle.dll,11,$dll(dvdplug.dll,1,1,param2),-),/)

I had to play with the zoomplayer plugin a bit to get what I wanted. The only output i could get from the plugin is using $dll(dvdplug.dll,1,1,param2), which gives whatever is along the on screen graphic in zoom player. I set that graphic to have the format: (elapsed time)/(total time) - (File Name). My video files are named with this format: (title) - (Season and Episode Number) - (Subtitle)
The fourth line of this screen uses the elapsed time and total time, but I had to only use the minutes part of that time for the bar. So, the input for the bar in this screen is $Bar(19,42,8), and it has two custom characters on either end of the bar.
I use sandr.dll to replace all ******** characters with a | (from splittitle when it doesnt find an input. )
Whew! That was a mouthful...
If anyone is interested in how I did the GBPVR stuff, just PM me and I will send a copy of the batch files, and how to implement them.